You need to enable JavaScript to run this app. 使用EPPlus修改Excel列值:通过列名获索引后如何修改指定列数值
优惠活动
大模型
产品
解决方案
定价
更多

使用EPPlus修改Excel列值:通过列名获索引后如何修改指定列数值

EPPlus 按列索引修改指定列所有数值的实现方法

基础遍历修改方案

如果需要对列内每个单元格的值做差异化处理,可以先获取工作表最大有效行号,遍历行修改对应列的单元格,示例代码如下:

// 获取当前工作表的最大使用行号
int maxRow = ws.Dimension.End.Row;

// 示例:将Birthdate列所有日期加1天,默认跳过第1行表头
for (int row = 2; row <= maxRow; row++)
{
    if (DateTime.TryParse(ws.Cells[row, columnId].Text, out DateTime birthDate))
    {
        // 修改单元格值
        ws.Cells[row, columnId].Value = birthDate.AddDays(1);
        // 可选:统一设置列格式
        ws.Cells[row, columnId].Style.Numberformat.Format = "yyyy-MM-dd";
    }
}

// 操作完成后保存修改
package.Save();

批量操作方案

如果是给整列有效单元格统一赋值、设置格式,可以直接定位列范围,无需逐行遍历,性能更高:

// 定位该列除表头外的所有有效数据范围
var columnRange = ws.Cells[2, columnId, ws.Dimension.End.Row, columnId];

// 示例1:统一填充列值
columnRange.Value = "默认值";
// 示例2:统一设置日期格式
columnRange.Style.Numberformat.Format = "yyyy-MM-dd";
// 示例3:统一设置单元格样式
columnRange.Style.Font.Bold = true;

注意事项

  • 上述示例默认跳过第1行表头,如果需要修改包含表头在内的整列,将行起始值改为1即可
  • 若使用EPPlus 5及以上版本,非开源场景使用需要注意商业授权要求
  • 所有修改完成后必须调用ExcelPackage的Save()或SaveAs()方法才会写入文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 12:24:07