2013-07-10 784 views
1

我沒有看到使用EPPlus在現有的Excel文件中插入一行的方法。我知道InsertRow函數,但是這不會在最後插入行 - 類似於sql中的insert語句。如果這是不可能的,我將如何找到excel文件中最後一次使用的行。在Excel中使用EPPlus插入一行

回答

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

1

使用下面的代碼

worksheet.Dimension.End.Row 

這應該給上次使用的行信息。