如何使用EPPLus库在Excel中清除行?

问题描述:

现在我正在提供硬代码值,因为我知道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 
    } 

我想最简单,最可靠的方法是删除整个工作表。

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