C#EPPlus从excel工作表中删除行
我目前正在使用一个Excel文件,该文件的前导行包含我不需要的信息。这些额外的行也会影响在下面的标题行中导入该数据。所以我试图删除它们来处理数据C#EPPlus从excel工作表中删除行,c#,excel,epplus,C#,Excel,Epplus,我目前正在使用一个Excel文件,该文件的前导行包含我不需要的信息。这些额外的行也会影响在下面的标题行中导入该数据。所以我试图删除它们来处理数据 using (var pack = new ExcelPackage(myFileInfo)) { // Should return the sheet name var ws = pack.Workbook.Worksheets.FirstOrDefault(); // Should Delete rows 1-5 and s
using (var pack = new ExcelPackage(myFileInfo))
{
// Should return the sheet name
var ws = pack.Workbook.Worksheets.FirstOrDefault();
// Should Delete rows 1-5 and shift up the rows after deletion
ws.DeleteRow(1,5,true);
}
我原以为上述方法会奏效,但我还没有成功
我们的目标是删除第1-5行,向上移动其余的数据(可能合并可以吗?),然后将其转换为数据表
任何人都有从我的excel工作表中删除行的技巧或资源(在将其移动到datatable之前,因为这是问题发生的地方)现有的代码将删除前5行,但您还需要对修改后的文件进行处理。您可以使用以下方法将其保存到位:
pack.Save();
或使用以下命令保存到新位置:
pack.SaveAs(new FileInfo(outputFilePath));
我上传了一个完整的例子:
如果您构建并运行该解决方案,您可以看到它在输入文件(demo.xlsx)中从此文件转换了演示文件:
要在输出文件中执行此操作,请执行以下操作:
删除前5行,所有内容都向上移动。听起来您需要先使用foreach。。在google上搜索
C#EPPLUS Delete row from excel
@MethodMan我认为我不需要使用Foreach,因为我似乎可以删除并向上移动。那么,在代码中,您在哪里使用适当的方法重载来从只需添加参数1,5=>DeleteRow(1,5)中删除行@CSharpie我非常赞同这个建议,目前我正试图弄清楚为什么我的变量ws为null。var ws=myExcelPackage.Workbook.Worksheets.FirstOrDefault();应该给它一个合适的值我会假设。。。
static void Main(string[] args)
{
var myFileInfo = new FileInfo("Demo.xlsx");
using (var pack = new ExcelPackage(myFileInfo))
{
var ws = pack.Workbook.Worksheets.FirstOrDefault();
ws.DeleteRow(1, 5, true);
pack.SaveAs(new FileInfo("output.xlsx"));
}
}