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

如何使用EPPlus对ExcelRange执行FillDown操作?

用EPPlus实现ExcelRange的FillDown操作

嘿,用EPPlus做FillDown其实和Excel里手动操作或者VBA的逻辑完全一致,我给你捋捋具体怎么实现:

首先得明确,EPPlus的ExcelRange对象本身就自带了FillDown()方法,作用就是把选中范围顶部的单元格内容(包括值、公式、格式)向下填充到该范围的其他单元格里。

基础用法示例

比如你要把A1单元格的值填充到A2到A5,代码可以这么写:

// 记得引用EPPlus的命名空间
using OfficeOpenXml;

// 创建新工作簿(也可以用ExcelPackage.Open()打开现有文件)
using var package = new ExcelPackage();
var worksheet = package.Workbook.Worksheets.Add("FillDownDemo");

// 先给顶部单元格赋值
worksheet.Cells["A1"].Value = "Product A";

// 选中包含源单元格和目标区域的范围:A1到A5
var fillRange = worksheet.Cells["A1:A5"];

// 执行FillDown操作
fillRange.FillDown();

// 保存工作簿到指定路径
package.SaveAs(new FileInfo(@"C:\Temp\FillDownExample.xlsx"));

关键注意事项

  • 一定要确保选中的范围包含有内容的顶部单元格,不然FillDown不会有任何效果。比如单独选A2:A5调用FillDown,因为没有可填充的源内容,结果还是空的。
  • 这个方法不仅能填充文本、数值,还能同步填充公式、单元格格式(比如字体颜色、背景色),和Excel手动拖拽填充的行为完全一致。

进阶:公式填充示例

如果是公式的场景,比如B1有公式=A1*2,要填充到B2到B5,逻辑也是一样的:

// 先给A列填充基础数据
worksheet.Cells["A1:A5"].Values = new object[] { 10, 20, 30, 40, 50 };
// 设置B1的公式
worksheet.Cells["B1"].Formula = "=A1*2";

// 选中B1到B5执行FillDown
worksheet.Cells["B1:B5"].FillDown();

执行后B2到B5的公式会自动调整为=A2*2、=A3*2这类对应单元格的公式,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:22:39