C# 未按默认顺序检索Excel工作表
当我试图从C# 未按默认顺序检索Excel工作表,c#,excel,C#,Excel,当我试图从C#代码中读取excel工作表名称时,它会按字母顺序返回它们。我真的需要他们按照正常的顺序 这是因为我有一个场景,用户需要输入一个工作表编号,然后根据该编号,我需要处理该工作表结果。但是,当我阅读代码时,它肯定会按字母顺序返回表单,如何才能按正常顺序获得这些表单名称 对于获取图纸名称,我们使用的代码如下 sheetNamesDT = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null); 根据MSDN,对于Excel中的电子
C#
代码中读取excel工作表名称时,它会按字母顺序返回它们。我真的需要他们按照正常的顺序
这是因为我有一个场景,用户需要输入一个工作表编号,然后根据该编号,我需要处理该工作表结果。但是,当我阅读代码时,它肯定会按字母顺序返回表单,如何才能按正常顺序获得这些表单名称
对于获取图纸名称,我们使用的代码如下
sheetNamesDT = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
根据MSDN,对于Excel中的电子表格,它可能无法工作,因为Excel文件不是真实的数据库。因此,您将无法按工作表在工作簿中的可视化顺序获取工作表名称 使用interop根据图纸的视觉外观获取图纸名称的代码: 添加对Microsoft Excel 12.0对象库的引用 以下代码将按照工作簿中存储的实际顺序给出工作表名称,而不是排序后的名称,但为此,您需要在该计算机上安装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);
}
根据MSDN,对于Excel中的电子表格,它可能无法工作,因为Excel文件不是真实的数据库。因此,您将无法按工作表在工作簿中的可视化顺序获取工作表名称 使用interop根据图纸的视觉外观获取图纸名称的代码: 添加对Microsoft Excel 12.0对象库的引用 以下代码将按照工作簿中存储的实际顺序给出工作表名称,而不是排序后的名称,但为此,您需要在该计算机上安装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);
}
参见下面的问题参见下面的问题