首页 > 解决方案 > 使用 exceldatareader 将 excel 工作表行 ID 获取到数据集中

问题描述

我选择了 ExcelDataReader 库来使用 C# 读取 .XLS 和 .XLSX 文件。ExcelDataReader 在我的本地和部署服务器环境中完美地处理这两种文件格式。

我遇到了问题,如何从给定的 Excel 文件中获取所有行 ID?

输入 Excel 文件:

在此处输入图像描述

我想要像这样的数据集格式输出

在此处输入图像描述

标签: c#excelexceldatareaderexcel-reader

解决方案


让我们通过代码来解释

    using (var stream = System.IO.File.Open(Server.MapPath("yourExcelfileName.xlsx"), FileMode.Open, FileAccess.Read))
    {
        using (var reader = ExcelDataReader.ExcelReaderFactory.CreateReader(stream))
        {
            var conf = new ExcelDataSetConfiguration()
            {
                ConfigureDataTable = a => new ExcelDataTableConfiguration
                {
                    UseHeaderRow = true
                }
            };
            var dataSet = reader.AsDataSet(conf);
            var sheet = dataSet.Tables["sheetName"].Rows.Cast<DataRow>(); // instead of sheetName you can use Index of it like 0 ,1 , ...
            foreach (var row in sheet)
            {
                // some code
                var rowId = row.Table.Rows.IndexOf(row);
                var rowValueByHeaderFieldName = row["HeaderFieldName"]; // you can also use index instead of HeaderFieldName like row[1] , ...
                // some code
            }
        }
    }

希望这有帮助;)


推荐阅读