You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除部分行后Excel导入计数异常问题求助

解决Excel删除行后Rows.Count返回值不准确的问题

问题原因

Excel的Rows.Count返回的是工作表曾经被使用过的最大行数,哪怕你删除了行内容,只要这些行曾被编辑过(比如设置过格式、输入过内容后删除),Excel会保留这个“已使用”的标记,所以读取时仍会返回原来的数值。

手动修复方法

  1. 打开Excel文件,选中删除后剩下的空白行(比如你案例里的第7-10行)
  2. 右键选择「删除整行」,而非仅清除单元格内容
  3. 保存文件后重新导入读取,此时Rows.Count会返回正确的6行

代码层面的解决方案(针对常用Excel操作库)

1. 使用EPPlus库

不要直接依赖worksheet.Rows.Count,改用worksheet.Dimension.End.Row,它会自动识别实际包含数据/格式的最后一行:

int actualRowCount = worksheet.Dimension?.End.Row ?? 0;

2. 使用NPOI库

用sheet.LastRowNum获取最后一行索引,同时额外判断每行是否有有效数据:

int actualRowCount = 0;
for (int i = 0; i <= sheet.LastRowNum; i++)
{
    var row = sheet.GetRow(i);
    if (row != null && row.Cells.Any(cell => cell.CellType != CellType.Blank))
    {
        actualRowCount++;
    }
}

3. 通用逻辑(适用于大多数库)

遍历所有行,判断每行是否存在非空单元格,统计有效行数,彻底避免Excel的“已使用行”标记干扰。

内容的提问来源于stack exchange,提问作者TechChoice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 22:00:10