C#.NET Excel和OLEDB连接字符串
我正在尝试将Excel文件中的数据读取到我的windows应用程序中 连接字符串: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文件中读
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,那么一切看起来都正常。非常感谢你的帮助