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

导入Excel表格时如何在遇到空白行时终止foreach循环

解决方法

你现在代码的问题是没有做空白行校验,读取了Excel末尾无有效内容的空行,按以下逻辑修改即可实现遇到空白行直接终止导入:

DataSets = new ImportList().ImportFromExcel();

var list = new List<string>();
foreach (DataTable table in DataSets[0].Tables)
{
    foreach (DataRow row in table.Rows)
    {
        // 校验当前行是否为全空白行
        bool isEmptyRow = row.ItemArray.All(item => item == null || string.IsNullOrWhiteSpace(item.ToString()));
        // 遇到空白行直接终止遍历
        if (isEmptyRow) break;
        
        // 原有字段提取逻辑
        list.Add(row["LAST NAME"]?.ToString().Trim() ?? row.ItemArray[7]?.ToString().Trim());
    }
}

以上代码使用了LINQ的All语法,需要保证代码文件头部已经引入using System.Linq;,如果不想引入LINQ可以替换为循环遍历ItemArray判断的逻辑,效果完全一致。

可选调整方案

  • 如果你只需要校验你提取的LAST NAME字段是否为空就能判定空白行,可以简化判断逻辑,无需遍历整行所有单元格,运行效率更高:
foreach (DataRow row in table.Rows)
{
    string targetValue = row["LAST NAME"]?.ToString().Trim() ?? row.ItemArray[7]?.ToString().Trim();
    // 目标字段为空直接终止导入
    if (string.IsNullOrWhiteSpace(targetValue)) break;
    list.Add(targetValue);
}
  • 如果你的有效数据中允许中间出现空行,只需跳过空行而非终止导入,将上述代码中的break替换为continue即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:36:01