Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解析excel文件失败_C#_.net_Winforms_Visual Studio 2010_Ms Office - Fatal编程技术网

C# 解析excel文件失败

C# 解析excel文件失败,c#,.net,winforms,visual-studio-2010,ms-office,C#,.net,Winforms,Visual Studio 2010,Ms Office,我必须从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 Ole

我必须从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,没有了


一天又一天可能出什么问题,我该如何解决?我不知道。

节省时间和头痛,改用ePlus。可以通过Nuget安装,您无需在运行代码的其他计算机上安装Office Data access。

您可以使用openXML SDK。它不需要机器级别的依赖关系


我从未使用OLEDB以可靠的方式成功读取Excel文件。有时,填充的单元格是空的,你必须摆弄你的注册表,有趣的事情可能会发生。现在我使用或使用手机来完成这些任务,直到昨天我才发现问题。我将尝试寻找其他类似的简单解决方案。您是否运行64位操作系统,如果是,您是否运行Office的32位或64位副本?如果是前者,那么您需要确保已安装32位版本的OLE驱动程序,并确保您的程序是针对x86模式编译的。我在运行32位office的64位Win7上。程序是针对x86编译的。这听起来很棒。虽然我甚至不知道努吉是什么。你能提供关于如何使用EEPLUS读取xlsx文件的示例链接吗?没关系。我发现了一个很好的例子。现在我可以正确解析了。但要使用此函数,EPPLUS.dll必须与我的可执行文件位于同一目录中。因此,我们已经到了安装它的问题。您能帮助我吗?您使用的是什么开发工具Visual Studio?如果是,版本是什么?