【问题标题】:Connection to large excel file is very slow连接到大的excel文件很慢
【发布时间】: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


【解决方案1】:

尝试不同的方法,也许如果您使用链接数据库的 access 数据库,其中链接了 de excel 表,您可以获得时间。 access 和 excel 之间的连接很奇怪,但在许多情况下比导入 Excel 文件要快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-19
    • 2021-10-27
    • 2017-08-07
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    相关资源
    最近更新 更多