2017-05-11 2 views
3

Ich bin in der Lage Zellenwert mit EPPlus einzustellen:Wie wird der Wert einer Excel-Zelle anhand des Namens festgelegt, anstatt die Koordinaten mit EPPlus zu verwenden?

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; 

Statt durch seine Koordinaten in die Zielzelle die Adressierung ich möchte eine benannte Zelle/Variable „Gewinne“ zu verwenden.

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

EPPlus unterstützt jedoch ws.Range (...) nicht.

=> Ist es trotzdem möglich? Wie würde ich eine Erweiterungsmethode schreiben, die die gewünschte Funktionalität bereitstellt?

In Verbindung stehende Artikel/Fragen:

a) Doc für EPPlus:

http://epplus.codeplex.com

b) Wie benannten Zellen/Variablen in Excel verwenden:

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) Bibliotheken für die Erstellung von Excel-Dateien mit C#

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

Antwort

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

von

Is there a way to get 'named' cells using EPPlus?

Es ist auch möglich, die Werte für einen benannten Bereich zu setzen:

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; 
      } 
     } 
     } 

von

EPPlus, Find and set the value for a Named Range

Verwandte Themen