【问题标题】:How to increase Excel file reading speed if we use ExcelDataReader package?如果我们使用 ExcelDataReader 包,如何提高 Excel 文件的读取速度?
【发布时间】:2021-10-18 12:43:51
【问题描述】:

我正在使用 ExcelDataReader 读取 excel 文件(*.xlsx、*.xlsb、*.xls),我正在尝试加快处理速度。

它工作得很好,但显示行需要时间。注意:我正在使用一个大的 excel 文件(14000 行),我只想显示前五个。

这是我的进度:

    FileInfo fileInfo = new FileInfo(filePath);
    if (fileInfo.Extension.ToLower().Contains(".xls"))
                {
                    using (FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
                    {
                        using (var excelReader = ExcelReaderFactory.CreateReader(stream))
                        {
                            DataTable result = excelReader.AsDataSet().Tables[0];
                            for (int i = 0; i < 6; i++)
                            {
                                resultList.Add(string.Join(",", result.Rows[i].ItemArray).Split(',').ToArray());
                            }
                            excelReader.Close();
                        }
                    }
                }
                return resultList;

【问题讨论】:

    标签: c# excel filestream exceldatareader


    【解决方案1】:

    不要使用reader.AsDataSet() - 这会将整个文件加载到内存中,这会产生很大的开销。而是使用读取器 API,例如 reader.Read() 一次读取一行,使用 reader.GetValue() 获取当前行的值。

    【讨论】:

    • 当我使用 GetTheValue() 时,它只检索列值而不是行值
    猜你喜欢
    • 2023-01-13
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2021-11-14
    • 2015-06-15
    • 2019-06-22
    • 1970-01-01
    相关资源
    最近更新 更多