簡體   English   中英

使用EPPlus在Excel中插入一行

[英]Insert a row in Excel using EPPlus

我沒有看到使用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而不需要所有其他代碼。 我使用這種更復雜的方法,因為我有時會在工作表中添加除表之外的其他信息,我不希望將其包含在計算中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM