8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

当我尝试使用 EPPlus OfficeOpenXml 读取 Excel 文件时获取额外的空行

Evariste Galois 3月前

75 0

我有一个包含 4 个工作表的 Excel 文件。但是,当我在 C#(.NET Core 3.1)代码中读取第一个工作表时,它的行为不正确。该工作表大约有 350-450 个条目,有时它只读取...

我有一个包含 4 个工作表的 Excel 文件。但是,当我在 C#(.NET Core 3.1)代码中读取第一个工作表时,它的行为不正确。

该表大约有 350-450 个条目,有时它只读取 4 个空行,有时读取 450 行但仍然有 4 个额外的空行。然后我从末尾删除了一些空行,这样它就可以开始正确读取了。

这是我正在使用的代码:

    public List<Dictionary<string, string>> ReadSheet(ExcelWorksheet worksheet)
    {
        try
        {
            _logger.LogInformation("No. of rows (including header) = " + worksheet.Rows.Count());
    
            var headers = worksheet.Cells["A1:ZZ1"].Select(c => c.Text).ToList();
            _logger.LogInformation("No. of headers > " + headers.Count);
    
            List<Dictionary<string, string>> sheetData = new List<Dictionary<string, string>>();
            int count = worksheet.Rows.Count();

            for (int row = 2; row <= worksheet.Rows.Count(); row++)
            {
                Dictionary<string, string> rowData = new Dictionary<string, string>();

                for (int col = 1; col <= headers.Count; col++)
                {
                    rowData[headers[col - 1]] = worksheet.Cells[row, col].Text;
                }

                sheetData.Add(rowData);
            }

            _logger.LogInformation("Number of rows stored:" + sheetData.Count);
    
            return sheetData;
        }
        catch (Exception ex)
        {
            _logger.LogError("Exception:" + ex);
            throw ex;
        }
    }

我使用相同的代码读取所有其他工作表,它们具有正确的行数。

我使用的这个 Excel 是使用 Java 代码准备的,没有添加任何额外的行。我无法手动从末尾删除多余的空行。

请提供建议。提前致谢!

编辑:

我有 435 行 (包括标题)。

我得到了:

行数(包括标题)= worksheet.Rows.Count() = 439

行数(包括标题)= 工作表.尺寸.行数 = 442

帖子版权声明 1、本帖标题:当我尝试使用 EPPlus OfficeOpenXml 读取 Excel 文件时获取额外的空行
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Evariste Galois在本站《excel》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我有行长约为 20,005 的数据,并且想要计算该行中唯一数据的数量。我可以使用 VBA 来解决我的问题吗?我尝试编写公式 =SUM((A5:A20005<>&q...

    我有行长约为 20,005 的数据,并且想要计算该行中唯一数据的数量。

    我可以使用 VBA 解决我的问题吗?

    我尝试直接在工作表中写入公式 =SUM((A5:A20005<>\'\')/COUNTIF(A5:A20005;A5:A20005&\'\')),但最终它挂在我的计算机上

返回
作者最近主题: