如何将新单元格附加到一行?

How do I append a new cell to a row?

我似乎找不到任何允许我在不指定索引的情况下添加到行的示例。

例如,要设置您必须执行的单元格的值:

sheet.Cells["A1"].Value = "Hello World!";

但是,有没有一种方法可以将一个新单元格附加到一行中?像这样:

row.Append("Hello World!");

不幸的是,这并不容易,但有一种方法可以实现。

您需要做的第一件事是找到 包含 值的最后一个单元格(行或列或两者)。 EPPlus 的 ExcelRange 对象实现 IEnumerable 因此您可以使用 linq 获取单元格地址。

给定第 3 行,您可以获得一行中最后一个单元格的值如下:

var lastCellInRowWithValue = sheet.Cells.Last(c => c.Start.Row == 3);

或第 4 列:

var lastCellInColumnWithValue = sheet.Cells.Last(c => c.Start.Column == 4);

这将为您提供单元地址,例如“G3”。 您可以使用此地址提取 row/column 的整数值,然后可用于设置下一个 单元格以写入值。

int rowNumber = lastCellInRowWithValue.Start.Row;
int columnNumber = lastCellInRowWithValue.Start.Column;

使用这些值,您可以 'append' 行的下一个空单元格中的值,方法是将列值加 1:

sheet.Cells[rowNumber, columnNumber + 1].Value = "Hello World!";