C# 按顺序获取Excel文件中的所有图纸名称

C# 按顺序获取Excel文件中的所有图纸名称,c#,C#,我试图将所有工作表名称按Excel文件中相同的顺序放入数组。目前,我已将所有工作表单独提交如下: var pathToExcel = @"C:\Users\Desktop\Everything.xlsx"; var sheetName = "sheet 1"; var destinationPath = @"C:\Users\Desktop\sheet1.json"; var connectionString = String.Format(@" Provider=Mic

我试图将所有工作表名称按Excel文件中相同的顺序放入数组。目前,我已将所有工作表单独提交如下:

var pathToExcel = @"C:\Users\Desktop\Everything.xlsx";
var sheetName = "sheet 1";
var destinationPath = @"C:\Users\Desktop\sheet1.json";
var connectionString = String.Format(@"
            Provider=Microsoft.ACE.OLEDB.12.0;
            Data Source={0};
            Extended Properties=""Excel 12.0 Xml;HDR=YES""
        ", pathToExcel);

我想知道如何获取数组中的所有工作表名称。

我建议您通过NuGet添加包EPPlus,并使用以下代码段

  using (var package = new ExcelPackage("c:\\yourfile.xlsx"))
  {
        return  package.Workbook.Worksheets.Select(x => x.Name);
  }

我建议您通过NuGet添加包EPPlus,并使用以下代码段

  using (var package = new ExcelPackage("c:\\yourfile.xlsx"))
  {
        return  package.Workbook.Worksheets.Select(x => x.Name);
  }
试试这个

OleDbConnection conn = new OleDbConnection(connectionString);
conn.Open();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
String[] sheetNames = new String[dt.Rows.Count];
int i = 0;
foreach (DataRow row in dt.Rows)
{
   sheetNames[i] = row["TABLE_NAME"].ToString();
   i++;
}
试试这个

OleDbConnection conn = new OleDbConnection(connectionString);
conn.Open();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
String[] sheetNames = new String[dt.Rows.Count];
int i = 0;
foreach (DataRow row in dt.Rows)
{
   sheetNames[i] = row["TABLE_NAME"].ToString();
   i++;
}