4

我可以使用 EPPlus 设置单元格值:

var template = new FileInfo(Server.MapPath("~/App_Data/my_template.xlsx"));
var pck = new ExcelPackage(template);
var ws = pck.Workbook.Worksheets.First();
ws.Cells[15, 4].Value = 66; 
ws.Cells["B1"].Value = 55;

我不想通过其坐标来寻址目标单元格,而是使用命名单元格/变量“利润”。

ws.Range("profits").Value = 66;

但是,EPPlus 不支持 ws.Range(...)。

=> 还有可能这样做吗?我将如何编写提供所需功能的扩展方法?

相关文章/问题:

a) EPPlus 的文档:

http://epplus.codeplex.com

b) 如何在 Excel 中使用命名单元格/变量:

https://www.computerhope.com/issues/ch000704.htm

在 Excel 2013 VBA 中引用命名单元格的正确方法是什么?(我知道我搞砸了)

c) 使用 C# 创建 Excel 文件的库

从 C# 创建 Excel(.XLS 和 .XLSX)文件

4

1 回答 1

2
var profits = pck.Workbook.Names["profits"];
profits.Value = 66;

有没有办法使用 EPPlus 获取“命名”单元格?

也可以为命名范围设置值:

var ws = pck.Workbook.Worksheets.First();
using (var namedRange = pck.Workbook.Names["MyNamedRange"])
      {
        for (int rowIndex = namedRange.Start.Row; rowIndex <= namedRange.End.Row; rowIndex++)
        {
          for (int columnIndex = namedRange.Start.Column; columnIndex <= namedRange.End.Column; columnIndex++)
          {
            ws.Cells[rowIndex, columnIndex].Value = 66;
          }
        }
      }

EPPlus,查找并设置命名范围的值

于 2017-05-11T12:24:12.313 回答