使用EPPlus在Excel中插入一行
本文关键字:一行 插入 EPPlus Excel 使用 | 更新日期: 2023-09-27 18:21:56
我看不到使用EPPlus在现有excel文件中插入行的方法。我知道InsertRow函数,但它不会在末尾插入行,类似于sql中的insert语句。如果这不可能,我将如何在excel文件中找到最后使用的行。
使用以下代码
worksheet.Dimension.End.Row
这应该提供最后使用的行信息。
下面是一个使用EPPlus查找Excel工作表中表中最后一个单元格的方法。
private ExcelRange GetLastContiguousCell(ExcelRange beginCell)
{
var worksheet = beginCell.Worksheet;
var beginCellAddress = new ExcelCellAddress(beginCell.Start.Row, beginCell.Start.Column);
var lastCellAddress = worksheet.Dimension.End;
var bottomCell = worksheet.Cells[beginCellAddress.Row, beginCellAddress.Column, lastCellAddress.Row, beginCellAddress.Column]
.First(cell => cell.Offset(1, 0).Value == null);
var rightCell = worksheet.Cells[beginCellAddress.Row, beginCellAddress.Column, beginCellAddress.Row, lastCellAddress.Column]
.First(cell => cell.Offset(0, 1).Value == null);
return worksheet.Cells[bottomCell.Start.Row, rightCell.Start.Column];
}
然而,一个重要的注意事项是,这假设第一行和第一列中没有间隙。我将此方法用于第一行用于列标题(不能为null),第一列为主Id
列(也不可以为null)的情况。如果你的情况与此不同,你将不得不调整方法,但希望它仍然会有所帮助。
编辑
我突然想到,您可能只需要使用worksheet.Dimension.End
而不需要所有其他代码。我使用这种更复杂的方法,因为我有时会在工作表中的表之外放其他信息,我不希望这些信息包含在计算中。