Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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#.NET Excel和OLEDB连接字符串_C# - Fatal编程技术网

C#.NET Excel和OLEDB连接字符串

C#.NET Excel和OLEDB连接字符串,c#,C#,我正在尝试将Excel文件中的数据读取到我的windows应用程序中 连接字符串: provider = Microsoft.Jet.OLEDB.4.0; Data Source = "Excel File"; Extended Properties = \"Excel 8.0; HDR = Yes; ImportMixedTypes = Text; Imex = 1;\" 使用此连接字符串,即使计算机上未安装Microsoft office-Excel,我也可以从Excel文件中读

我正在尝试将Excel文件中的数据读取到我的windows应用程序中

连接字符串:

provider = Microsoft.Jet.OLEDB.4.0; Data Source = "Excel File"; 
Extended Properties =    \"Excel 8.0; HDR = Yes; ImportMixedTypes = Text;
Imex = 1;\" 
使用此连接字符串,即使计算机上未安装Microsoft office-Excel,我也可以从Excel文件中读取数据。但是,我的程序与这个连接字符串不兼容

我现在使用的连接字符串是

provider = Microsoft.ACE.OLEDB.12.0; Data Source = "Excel file"; 
Extended Properties = "Excel 12.0; HDR = Yes; Imex = 1;
此连接字符串与我的程序兼容,但它仅在安装了Microsoft office-Excel的计算机上工作。

有人能告诉我哪里出错了吗


谢谢。

微软在2003年以后的所有Windows版本中都删除了JET引擎,包括64位Windows 2003。ACE是现代的替代品,但它也不随Windows的基本安装一起分发

为了使用ACE,您需要将可从Microsoft重新发行的免费ACE部署到所有未安装Office的目标计算机。然后,可以使用其中任何一个上列出的第二个连接字符串

从Microsoft获取它,请单击此处:

如果您可以使用第三方库,那么有一个非常不错的项目提供了使用Linq访问excel文件的功能。查看网址:

是xls还是xlsx?我认为问题在于您使用的OLEDB版本。尝试研究一下。@Yatrix:我正在尝试阅读xls和xlsx。您是使用直接ADO还是其他方法?请给我一些时间,我正在尝试安装此驱动程序并测试我的程序。请务必阅读该页上的说明,因为它提供了连接字符串的细节。+1这个人知道ACE不像JET那样随Windows提供。我在两台不同的计算机上进行了尝试,但没有安装Michorsoft Excel,但结果是一样的。在花了几天时间后,我终于找到了一个简单的问题解决方案。连接和驱动程序都可以工作,您指定的驱动程序也可以工作,但并非在所有情况下都可以。我只是将Excel文件保存为97-2003格式,即xls,如果它是.xlsx,那么一切看起来都正常。非常感谢你的帮助