C#EPPlus从Excel工作表中删除行

问题描述 投票:7回答:1

我目前正在处理一个Excel文件,该文件包含具有我不需要的信息的前导行。这些额外的行也会导致在下面的标题行中导入该数据。所以我试图删除它们来处理数据。

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工作表中删除行的提示提示或资源(在将其移入数据表之前,因为这是问题发生的地方)

c# excel epplus
1个回答
4
投票

您拥有的代码将删除前5行,但您还需要对修改后的文件执行某些操作。您可以使用以下方法将其保存到位:

pack.Save();

或使用以下方式保存到新位置:

pack.SaveAs(new FileInfo(outputFilePath));

我上传了一个完整的例子here

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"));
    }
}

如果您构建并运行解决方案,您可以看到它在输入文件(Demo.xlsx)中从此转换演示文件:

input file screengrab

在输出文件中:

output file screengrab

删除前5行,一切都向上移动。

© www.soinside.com 2019 - 2024. All rights reserved.