【发布时间】:2012-10-18 16:31:26
【问题描述】:
我有一个非常大的 excel 文件,它有大约一百万行,大小约为 400MB。 我需要为此文件建立一些 System.Data.IDbConnection。目前,我尝试了两种方法: 1)
System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='D:\\file.xls';Extended Properties='Excel 12.0;HDR=YES;IMEX=1';");
2)
System.Data.Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=<FILE>;ReadOnly=True;Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"")
两种连接都适用于小文件 (25MB)。但即使是 25MB 的文件,打开连接也需要大约 4 秒。
当我使用 350MB 的文件时,这个简单的命令:
connection.Open();
需要超过 3 分钟,我无法使用如此慢的连接。
有没有免费的解决方案来获得快速 IDbConnection 以读取大型 excel 文件? 感谢您的帮助。
【问题讨论】:
-
您是否尝试过将其作为 XML 接收的 epplus 或仅使用 Linq??
-
不,我没有,但现在我肯定会的。感谢帮助。它提供 IDbConnection 吗? .) 我需要它,因为我需要在最短的时间内处理大量数据。我现在不需要 linq 等的努力 :)
-
对于这么大的数据量,最好将数据加载到关系数据库中,然后使用它们的本机连接。
-
这就是我真正想要做的。我需要读取所有数据,修改它们并将它们插入 mssql db。我认为使用批量复制类将是最快的解决方案
-
你想这样做多少次?如果你只做一次导入数据,为什么还要担心 4 分钟?
标签: c# .net excel connection