如何使用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
取代你的“hardCodedRowNumber”有一些列具有这些功能看起来UPS在Excel中其他工作表。所以我想保留那些列和公式。目前我所做的是我手动删除所有数据并将Excel文件保存为模板,每当我需要创建报告时,我将文件复制并保存在不同的位置并在其上导入数据。先生可以请告诉我如何使用ws.Dimension.End.Row创建自己的方法。谢谢先生 – Nepsydaz
尝试替换ws.DeleteRow(2,hardCodedRowNumber);与ws.DeleteRow(2,ws.Dimension.End.Row); –
ws.DeleteRow(2,ws.Dimension.End.Row);这工作先生。但我遇到了另一个问题。该行中的某些列具有公式/函数。在删除行时,它也清除了这些函数。有没有办法让程序现在清除哪些特定列而不是清除行? – Nepsydaz