【问题标题】:Parsing excel files fails解析excel文件失败
【发布时间】:2014-07-15 16:12:57
【问题描述】:

我必须从 excel 文件中提取数据。自去年以来,我一直在使用以下代码:

OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + destFile + "; Extended Properties=Excel 12.0;");
string qText = @"select * from [sheetXY$]";
OleDbCommand oconn = new OleDbCommand(qText, cnn);
cnn.Open();
OleDbDataAdapter adp = new OleDbDataAdapter(oconn);
adp.Fill(dt);
cnn.Close();

从昨天开始,我收到以下错误消息:

我的机器上有 Office 2010 pro。根据一些谷歌建议,我安装了microsoft database access engine,没有任何区别。我重新安装了整个办公室,没有任何区别。然后我安装了Office 2013,不行。

一天到一天可能会出现什么问题,我该如何解决?我想不通。

【问题讨论】:

  • 我从未使用 OLEDB 以 可靠 的方式成功读取 Excel 文件。有时填充的单元格是空的,您必须摆弄您的注册表stackoverflow.com/questions/4551203/…,并且可能会发生其他有趣的事情。现在我使用epplus.codeplex.com 或 Aspose Cells 来完成这些任务。
  • 直到昨天我完全没有问题。我会尝试寻找其他类似的简单解决方案。
  • 您是否在 64 位操作系统上运行,如果是,您是在运行 32 位还是 64 位的 Office 副本?如果是前者,那么您需要确保您已经安装了 32 位版本的 OLE 驱动程序,并确保您的程序是针对 x86 模式编译的
  • 我在 64 位 Win7 上运行 32 位办公室。
  • 为 x86 编译的程序。

标签: c# .net winforms visual-studio-2010 ms-office


【解决方案1】:

节省您的时间和头痛,改用 EPPLUS。 EPPLUS 可以通过 Nuget 安装,您不必在运行代码的其他机器上安装 Office 数据访问。

【讨论】:

  • 这听起来很棒。虽然我什至不知道 Nuget 是什么。您能否提供有关如何使用 EEPLUS 读取 xlsx 文件的示例链接?
  • 没关系。我找到了一个很好的例子。现在我可以正确解析了。但是为了能够使用这个函数 EPPLUS.dll 必须和我的可执行文件在同一个目录中。所以我们已经到了安装它的问题。你能帮我吗?
  • 你用的是什么开发工具Visual Studio?如果有,是什么版本?
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 2015-02-14
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多