【发布时间】: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