繁体   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