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
相关产品推荐
相关产品推荐

