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

ASP.NET中如何查找并删除Excel表格空行(附现有控制器代码)

解决ASP.NET中Excel导入时过滤空行的问题

针对你提供的Excel导入方法,我们可以通过检查每行关键列的内容来过滤掉空行,避免无效数据被添加到IndiaCIT列表中。以下是修改后的完整代码:

public async Task<List<IndiaCIT>> Import(IFormFile file)
{
    var list = new List<IndiaCIT>();
    using (var stream = new MemoryStream())
    {
        await file.CopyToAsync(stream);
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        using (var package = new ExcelPackage(stream))
        {
            ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
            var rowcount = worksheet.Dimension?.Rows ?? 0;

            for (int row = 1; row <= rowcount; row++)
            {
                // 安全获取单元格值,处理null情况
                var nameChValue = worksheet.Cells[row, 1].Value?.ToString().Trim() ?? string.Empty;
                var cityValue = worksheet.Cells[row, 2].Value?.ToString().Trim() ?? string.Empty;
                var ageValue = worksheet.Cells[row, 3].Value?.ToString().Trim() ?? string.Empty;

                // 判断是否为空行:所有关键列都为空时跳过
                bool isEmptyRow = string.IsNullOrEmpty(nameChValue) && 
                                  string.IsNullOrEmpty(cityValue) && 
                                  string.IsNullOrEmpty(ageValue);

                if (!isEmptyRow)
                {
                    list.Add(new IndiaCIT
                    {
                        NameCH = nameChValue,
                        City = cityValue,
                        Age = ageValue
                    });
                }
            }
        }
    }
    return list;
}

关键修改说明:

  • 空值安全处理:用?.和??运算符避免单元格值为null时调用ToString()引发异常。
  • 空行判断逻辑:当当前行的NameCH、City、Age对应列全部为空或空白字符串时,判定为空行并跳过。
  • 行数异常防护:处理工作表无数据时Dimension为null的情况,避免出现运行时错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:15:46