2017-10-18 150 views
1

現在我正在提供硬代碼值,因爲我知道Excel中有數據的行數爲 。我希望我的程序知道如何在Excel表格中每次清除Excel並導入新數據。我如何使用EPPlus v4.1.1來實現這一目標?如何使用EPPLus庫在Excel中清除行?

我的代碼:*

using (ExcelPackage xlPackage = new ExcelPackage(new System.IO.FileInfo(sourcefile + fileName))) 
       { 
        ExcelWorksheet ws = xlPackage.Workbook.Worksheets[myWS]; 

        int hardCodedRowNumber = 300; 

        ws.DeleteRow(2, hardCodedRowNumber); 
// Other codes to import data from db after clearing excel 
    } 

回答

0

我想最簡單,最可靠的方法是刪除整個工作表。

var oldSheet = xlPackage.Workbook.Worksheets[myWS]; 
xlPackage.Workbook.Worksheets.Delete(oldSheet); 
var newSheet = xlPackage.Workbook.Worksheets.Add("MyNewSheet"); 

從那裏開始設置第1行。

如果你努力保持第1行的是,你可以先創建新的工作表,並刪除舊錶之前複製從一個到另一個行:

oldSheet.Cells[1, 1, 1, oldSheet.Dimension.End.Column].Copy(newSheet.Cells[1, 1]); 

或者,用自己的方法,你可以用

ws.Dimension.End.Row 
+0

取代你的「hardCodedRowNumber」有一些列具有這些功能看起來UPS在Excel中其他工作表。所以我想保留那些列和公式。目前我所做的是我手動刪除所有數據並將Excel文件保存爲模板,每當我需要創建報告時,我將文件複製並保存在不同的位置並在其上導入數據。先生可以請告訴我如何使用ws.Dimension.End.Row創建自己的方法。謝謝先生 – Nepsydaz

+0

嘗試替換ws.DeleteRow(2,hardCodedRowNumber);與ws.DeleteRow(2,ws.Dimension.End.Row); –

+0

ws.DeleteRow(2,ws.Dimension.End.Row);這工作先生。但我遇到了另一個問題。該行中的某些列具有公式/函數。在刪除行時,它也清除了這些函數。有沒有辦法讓程序現在清除哪些特定列而不是清除行? – Nepsydaz

相關問題