如何使用EPPlus按名称而非坐标设置Excel单元格的值?

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;

我希望可以使用一个名为"profits"的单元格/变量来代替通过坐标定位目标单元格。

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)文件

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,查找和设置命名范围的值


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接