/ /このExcel Interop構文をEPPLUS構文で記述するには - c#、excel、excel-interop、epplus

このExcel Interop構文をEPPLUS構文で書くにはどうすればいいですか? - c#、excel、excel-interop、epplus

誰かが、私のコードをオブジェクトの使用によってより管理しやすくする方法を提案しました:

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;

彼の提案ですが、私はinteropからEPPLUSに移行して以来、次の構文はもう機能しません。

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

EPPLUS構文のように、この外観の作業形式は何でしょうか?

この代わりにこれを正しく置き換え、シートのすべてを置き換えました:

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

おそらくこのような何か?

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

回答:

回答№1は2

これがまさにあなたが意味するものなのかどうかは不明ですが、ここではカスタムオブジェクトと配列を使った簡単な例を示します:

テスト対象:

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

カスタムオブジェクトと配列をシートに取り込む:

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