1

我看不到使用 EPPlus 在现有 excel 文件中插入行的方法。我知道 InsertRow 函数,但这不会在末尾插入行 - 类似于 sql 中的插入语句。如果这是不可能的,我将如何在 excel 文件中找到最后使用的行。

4

2 回答 2

3

使用以下代码

worksheet.Dimension.End.Row

这应该给出最后使用的行信息。

于 2016-04-10T18:55:11.690 回答
1

这是一种使用 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];
}

然而,一个重要的注意事项是,这是假设第一行和第一列中没有间隙。我将此方法用于第一行用于列标题(不能为空)并且第一列是主Id列(也不能为空)的情况。如果您的情况与此不同,您将不得不调整该方法,但希望它仍然会有所帮助。

编辑

我突然想到,你也许可以在worksheet.Dimension.End没有所有其他代码的情况下使用。我使用这种更复杂的方法是因为我有时会将除表格之外的其他信息放入工作表中,并且我不希望将其包含在计算中。

于 2013-07-10T21:01:06.530 回答