没有按默认顺序检索Excel表格

本文关键字:检索 Excel 表格 顺序 默认 | 更新日期: 2023-09-27 18:15:14

当我尝试从我的C#代码中读取excel表格名称时,它按字母顺序返回它们。我需要它们按正常顺序排列。

这是因为我有一个场景,用户需要输入一个工作表编号,然后根据我需要处理该工作表结果。但当我从代码中读取时,它肯定是按字母顺序返回的,我怎么才能让这些表名按正常顺序出现呢?

对于获取表单名,我们使用如下代码

sheetNamesDT = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);

没有按默认顺序检索Excel表格

根据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);
}