无法使用GetOleSchemaTable()获得工作表名称
||
我正在使用一些代码,这些代码使用OleDbConnection将数据从Excel文件加载到DataTable。当前,它默认为第一个工作表,但使用以下代码获取其名称:
string connectionString = @\"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myFilename.xlsx;Extended Properties=\"\"Excel 12.0 Xml;HDR=YES\"\"\"
DataTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (schemaTable.Rows.Count > 0)
return schemaTable.Rows[0][\"TABLE_NAME\"].ToString();
else
return \"Sheet1$\"
直到最近,当Excel文档(我们从第三方收到)开始包含命名的Ranges时,此方法一直有效。我没有隐藏的工作表。
现在
schemaTable.Rows[0][\"TABLE_NAME\"].ToString()
返回第一个Range的名称。
我可以使用schemaTable对象做一些事情来识别工作表,而不识别工作表中的命名范围吗?
没有找到相关结果
已邀请:
2 个回复
稍惮
来源:http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/21d3f77c-1d3d-44e0-9bd5-eca45a0affa6 替代解决方案2:使用DAO:
吞睫素
,并抓取所有工作表名称来自“ 5”节点。