如何将新单元格附加到一行?
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!";
我似乎找不到任何允许我在不指定索引的情况下添加到行的示例。
例如,要设置您必须执行的单元格的值:
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!";