使用OleDB获取Excel95工作簿中的图纸名称

我无法使用Jet提供程序和OleDb来获取Excel95工作簿中的工作表名称。

我有3张工作表,Sheet1,Sheet2,Sheet3。 我正在使用下面的代码来提取表名称:

var connectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"", filePath); using (var connection = new OleDbConnection(connectionString)) { connection.Open(); var dtXlsSchema = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); } 

这最终返回一个只有一个logging的数据表,用于Sheet1。 我猜连接string有问题吗?

OleDb将不知道空白表。

只要表中有一些数据,你应该得到他们的名字。

按照此页面 ,在连接string中使用Excel 5.0而不是Excel 8.0。

这有帮助吗?

编辑:

 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 5.0;HDR=YES;IMEX=1\"", filePath); 

EDIT2:

Excel版本:为Excel 97工作簿(7.0版的Excel)指定Excel 5.0,为Excel 97,Excel 2000或Excel 2002(XP)工作簿(Excel版本8.0,9.0和10.0)指定Excel 8.0。