没有按默认顺序检索Excel表格
本文关键字:检索 Excel 表格 顺序 默认 | 更新日期: 2023-09-27 18:15:14
当我尝试从我的C#
代码中读取excel表格名称时,它按字母顺序返回它们。我需要它们按正常顺序排列。
这是因为我有一个场景,用户需要输入一个工作表编号,然后根据我需要处理该工作表结果。但当我从代码中读取时,它肯定是按字母顺序返回的,我怎么才能让这些表名按正常顺序出现呢?
对于获取表单名,我们使用如下代码
sheetNamesDT = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
根据MSDN,在Excel内部的电子表格的情况下,它可能无法工作,因为Excel文件不是真正的数据库。因此,您将无法按照工作簿中显示的顺序获得工作表名称。
使用interop获取表单名称的代码:
添加对Microsoft Excel 12.0 Object Library的引用。
下面的代码将按照存储在工作簿中的实际顺序给出工作表名称,而不是排序后的名称,但为此您需要在该机器上安装office。
示例代码:
using Microsoft.Office.Interop.Excel;
string filename = "C:''romil.xlsx";
object missing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook wb =excel.Workbooks.Open(filename, missing, missing, missing, missing,missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
ArrayList sheetname = new ArrayList();
foreach (Microsoft.Office.Interop.Excel.Worksheet sheet in wb.Sheets)
{
sheetname.Add(sheet.Name);
}