使用OLEDB访问Excel 2007文件格式

我目前正试图访问不包含Microsoft Office的服务器上的Excel 2007文件。 我的连接string是这样的。

String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + file_path + ";Extended Properties=Excel 8.0;"; 

但这是2003年的格式,工作正常。 我想利用2007 xml格式。 但是我无法通过以下连接访问文件(目标服务器上没有安装Office,不知道是否是原因。

  String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "DataSource=" + file_path + ";HDR=Yes;IMEX=1;Extended Properties=Excel 12.0;"; 

我一直在收到“无法find可安装的isam”。 错误。

编辑我使用Visual Studio 2005和C#开发,如果这有助于清除任何事情。

你可以试试这个连接string:

 string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_name + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\""; 

请注意,虽然此驱动程序在x64系统上不受支持,但不起作用。

您应该尝试使用Linq to Excel开源项目来查询Excel电子表格中的数据。 您可以使用LINQ语句来查询数据,而Linq到Excel负责进行OLEDB连接并创buildSQL语句。

下面是从Excel电子表格中查询数据是多么容易的一个例子

 var book = new ExcelQueryFactory("pathToExcelFile"); var rows = from x in book.Worksheet() select new { Name = x["Name"], BirthDate = x["BirthDate"].Cast<DateTime>() }; 

查看Linq to Excel介绍video ,了解更多关于开源项目的信息。

SpreadsheetGear for .NET将允许您打开工作簿,而不依赖OleDB,COM Interop或任何其他可以在服务器上创build问题的API。

你可以在这里看到活的ASP.NET示例,并在这里下载免费试用版。

免责声明:我自己的SpreadsheetGear LLC