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 № 1Nicht 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());
}