我正在处理一些使用 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 文档(我们从第三方收到)开始包含命名范围时,这一直运行良好。我没有找到隐藏的床单。
现在
schemaTable.Rows[0]["TABLE_NAME"].ToString()
返回第一个 Range 的名称。
我可以用我的 schemaTable 对象做一些不同的事情来识别工作表而不是工作表中的命名范围吗?