簡體   English   中英

如何在C#中使用數據表獲取Excel工作表名稱

[英]how to get excel sheet name using datatable in c#

我正在使用以下代碼從Excel工作表中獲取數據:-

private static DataTable GetDataFromCSVFile(string csv_file_path)
    {
        DataTable csvData = new DataTable();
        using (TextFieldParser csvReader = new TextFieldParser(csv_file_path))
        {
            csvReader.SetDelimiters(new string[] { "," });
            csvReader.HasFieldsEnclosedInQuotes = true;
            string[] colFields = csvReader.ReadFields();
            foreach (string column in colFields)
            {
                DataColumn datecolumn = new DataColumn(column);
                datecolumn.AllowDBNull = true;
                csvData.Columns.Add(datecolumn);
            }
            while (!csvReader.EndOfData)
            {
                string[] fieldData = csvReader.ReadFields();
                //Making empty value as null
                for (int i = 0; i < fieldData.Length; i++)
                {
                    if (fieldData[i] == "")
                    {
                        fieldData[i] = null;
                    }
                }
                csvData.Rows.Add(fieldData);
            }
            return csvData;
        }
    }

但我需要從同一工作簿中的工作表中檢索相同的內容。 任何想法如何使用c#中的數據表來做到這一點。

謝謝

“當用戶在Excel工作表中輸入數據時”並不意味着輸入到xls或xlsx文件中。 這可能意味着用戶使用MS Excel編輯CSV。 您可以使用來自4個源csv文件的數據創建“真正的excel”文件,並讀取一個新的單個文件,但是您需要另一個API,而不是TextFieldParser。 要讀取新的xlsx文件,請使用DocumentFormat.OpenXml程序集。 快速樣品是

      using (var doc = SpreadsheetDocument.Open(_docPath, false))
      {
            var sheet = doc.WorkbookPart.Workbook.Sheets.Elements<Sheet>().First()
            //Or iterate over all sheets, get sheet name, read it's data etc.
            //i'm sure you can find a lot of samples 
            var worksheetPart = (WorksheetPart)doc.WorkbookPart.GetPartById(sheet.Id);
            var sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();

            foreach (var row in sheetData.Elements<Row>())
            {
                    //some code here
            }
      }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM