我正在尝试检索 Excel 工作簿中的工作表列表,但我返回的集合同时具有工作表名称和数据列 ID,在原始 xlsx xml 中似乎称为“定义名称”。你能告诉我如何只返回工作表名称吗?
我正在使用的代码是:
OleDbConnection connExcel = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;"
+ @"Data Source=" + FilePath + ";"
+ @"Extended Properties=""Excel 8.0;HDR=Yes;""");
OleDbCommand cmdExcel = new OleDbCommand();
cmdExcel.Connection = connExcel;
connExcel.Open();
DataTable testTable = connExcel.GetSchema("Tables");
生成的 testTable 集合的内容包含以下 TABLE_NAME 下的条目:
- 数据1
- 数据2
- 数据3
- 数据4
- 数据5
- 表 1$
- 测试1-测试2
- 测试密钥
- 测试键
- 测试密钥
它们都有一个 TABLE_TYPE 的 TABLE。
与上述对应的原始工作簿将有一个包含 5 列的工作表,第一行将包含一个标题。我只对 Sheet1$ 条目感兴趣。该电子表格是在 Excel 2010 中创建的,我正在尝试在用 C# 编写的 ASP.NET 4 应用程序中处理它。工作表名称可能已更改,因此我不能保证它始终是 Sheet1$。