Мне не совсем ясно, идет ли вы после последнего Cell
в Row
по вашему выбору или последнего Cell
из последнего Row
. Оба подхода очень похожи, поэтому я покажу, как сделать оба.
Основной принцип состоит в том, чтобы сначала найти Row
, к которому вы стремитесь, а затем схватить ребенка Cell
с этого Row
.
Если вы хотите самый последний Cell
листа, тогда мы просто хотим последний Row
:
//grab the last row
Row row = wsPart.Worksheet.Descendants<Row>().LastOrDefault();
Однако, если вы хотите иметь возможность передать номер строки и получить последний Cell
из этого Row
, то что-то вроде этого поможет (здесь переменная rowIndex
обозначает индекс Row
для которого вы хотите последний Cell
:
//find the row that matches the rowNumber we're after
Row row = wsPart.Worksheet.Descendants<Row>()
.Where(r => r.RowIndex == rowIndex).FirstOrDefault();
Если у вас есть Row
, это всего лишь случай получения последнего Cell
этого Row
с использованием кода, аналогичного приведенному выше:
Cell theCell = null;
//find the row that matches the rowNumber we're after
Row row = wsPart.Worksheet.Descendants<Row>().Where(r => r.RowIndex == rowIndex).FirstOrDefault();
if (row != null)
{
//now grab the last cell of that row
theCell = row.Descendants<Cell>().LastOrDefault();
}
// If the cell does not exist, return an empty string.
if (theCell != null)
...