Excel表格不以其默认顺序检索

当我尝试从我的C#代码中读取Excel表格名称时,它将按照字母顺序返回它们。 我实际上需要他们正常的顺序。

这是因为我有一个场景,用户需要input工作表编号,然后根据需要处理工作表结果。 但是,当我从代码读取它肯定是按字母顺序返回表,我怎么能得到这些表名正常顺序?

为了获取表单名称,我们使用类似的代码

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

根据MSDN,如果Excel中的电子表格可能无法正常工作,因为Excel文件不是真正的数据库。 因此,您将无法按工作簿中的可视化顺序获取表单名称。

使用interop获取表单名称的代码:

添加对Microsoft Excel 12.0对象库的引用。

下面的代码将以工作簿中存储的实际顺序给出工作表名称,而不是按sorting的名称,但为此,您需要在该计算机上安装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); }