使用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。