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

如何在ASP.NET中将Excel第一列元素添加至List集合

提取Excel第一列所有元素到List集合的正确实现

你的代码存在几个问题,导致无法正确获取第一列的所有元素:

  • 错误获取了第一行的所有列数据,而非第一列的所有行
  • 仅执行了一次添加操作,没有遍历第一列的每一行
  • 直接对数组调用ToString()只会得到类型名称,无法拿到实际元素值

下面是修正后的代码:

var list = new List<string>();

using (var stream = new MemoryStream())
{
    await file.CopyToAsync(stream);
    stream.Position = 0; // 重置流位置,避免读取异常

    ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

    using (var package = new ExcelPackage(stream))
    {
        ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
        int rowCount = worksheet.Dimension?.Rows ?? 0; // 处理工作表为空的情况

        // 遍历第一列的每一行(从第1行开始,可根据实际表头情况调整起始行)
        for (int row = 1; row <= rowCount; row++)
        {
            var cellValue = worksheet.Cells[row, 1].Value;
            // 将单元格值转为字符串,空值处理为空字符串
            list.Add(cellValue?.ToString() ?? string.Empty);
        }
    }
}

代码说明:

  • 重置了流的位置stream.Position = 0:因为CopyToAsync执行后流的指针会停在末尾,不重置会导致读取不到Excel数据
  • 用worksheet.Dimension?.Rows ?? 0:处理工作表为空的边界情况,避免空引用异常
  • 通过循环遍历第一列的每一行:用worksheet.Cells[row, 1]精准定位第一列的每个单元格
  • 处理单元格空值:用cellValue?.ToString() ?? string.Empty避免空引用异常,同时将空单元格转为空字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:25:28