【问题标题】:Get all sheet names in an Excel file in order [duplicate]按顺序获取Excel文件中的所有工作表名称[重复]
【发布时间】:2017-04-07 08:59:22
【问题描述】:

我正在尝试以与 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);

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

【问题讨论】:

    标签: c#


    【解决方案1】:

    试试这个,

    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++;
    }
    

    【讨论】:

      【解决方案2】:

      我建议你通过 NuGet 添加 Package EPPlus 并使用以下 sn-p

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-27
        • 1970-01-01
        • 2018-07-29
        • 2012-05-20
        • 1970-01-01
        相关资源
        最近更新 更多