首页 文章

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

提问于
浏览
3

我可以使用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

What's the RIGHT way to reference named cells in Excel 2013 VBA? (I know I'm messing this up)

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

Create Excel (.XLS and .XLSX) file from C#

1 回答

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

    Is there a way to get 'named' cells using 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, Find and set the value for a Named Range

相关问题