使用 EPPLUS 在 for 循环中写入单元格会导致重复值

Write to Cells in a for-loop with EPPLUS result in duplicate values

我不明白为什么下面的代码把 2,2,2 写成 Excel 而它应该是 0,1,2。代码很简单——创建一个 ExcelPackage,添加一个 Worksheet,然后迭代一个循环以将值写入单元格。

using (ExcelPackage p = new ExcelPackage())
{
    p.Workbook.Worksheets.Add("Foo");
    for (int j = 0; j < 3; j++)
        p.Workbook.Worksheets["Foo"].Cells[1, 1, 1, 1 + j].Value = j;
    p.SaveAs(new FileInfo(@"C:\FooFolder\Foo.xlsx"));
}

您在一个范围而不是一个唯一的单元格中书写。使用 Cells[1, 1, 1, 1 + j] 时,您正在从单元格 1,1 到单元格 1,1+j 进行书写:完整范围采用分配的值。

改用Cells[1, j, 1, 1 + j]