如何在c#中使用数据表获取excel表格名称

本文关键字:excel 获取 表格 数据表 | 更新日期: 2023-09-27 17:52:37

我使用以下代码从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表格名称

"当用户在Excel表格中输入数据"并不意味着输入到xls或xlsx文件中。这可能意味着用户使用MS Excel编辑CSV。你可以创建"真正的excel"文件的数据从4个源csv文件和读取一个新的单一文件,但你需要另一个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
            }
      }