/ / Wie schreibe ich diese Excel-Interop-Syntax in EPPLUS-Syntax - c #, Excel, Excel-Interop, epplus

Wie schreibe ich diese Excel-Interop-Syntax in EPPLUS-Syntax - c #, Excel, Excel-Interop, epplus

Jemand schlug mir eine Methode vor, um meinen Code zu verbessern, indem ich ihn durch die Verwendung von Objekten besser beherrsche:

string[,] values = new string[15, 35];  //or objects
values[7, 7] = "2016";
values[7, 28] = drag24;
values[7, 33] = drag25;
values[10, 8] = digit1;
values[10, 11] = digit2;
// etc.

Range range = WS.Range[WS.Cells[1, 1], WS.Cells[15, 35]];
range.Value = values;

Sein Vorschlag, aber seit ich von Interop zu EPPLUS gewechselt bin, funktioniert die folgende Syntax nicht mehr.

Range range = WS.Range[WS.Cells[1, 1], WS.Cells[15, 35]];

Wie sieht eine Arbeitsform in EPPLUS Syntax aus?

Ersetzen Sie es damit nicht richtig aus und ersetzt alles auf dem Blatt:

ExcelRange range = WS.Cells["A1: AH106"]

Vielleicht so etwas?

= sheet.Cells["A1:,12:12,14:14"]

Antworten:

2 für die Antwort № 1

Nicht sicher, ob dies genau das ist, was Sie meinen, aber hier ist ein einfaches Beispiel mit einem benutzerdefinierten Objekt und Arrays:

Testobjekt:

class TestObject
{
public int Id { get; set; }
public string Name { get; set; }
}

Ein Blatt mit dem benutzerdefinierten Objekt und den Arrays füllen:

IEnumerable<TestObject> objectList = new List<TestObject>()
{
{ new TestObject() {Id = 0, Name = "zero" } },
{ new TestObject() {Id = 1, Name = "one" } }
};
var values = new List<object[]>()
{
new string[] { "one", "two" },
new string[] { "three", "four" }
};

using (var package = new ExcelPackage())
{
var sheet = package.Workbook.Worksheets.Add("Sheet1");
// note second parameter gives you headings
sheet.Cells["A1"].LoadFromCollection<TestObject>(objectList, true);
sheet.Cells["A4"].LoadFromArrays(values);
File.WriteAllBytes(OUTPUT, package.GetAsByteArray());
}