如何使用EPPlus将新工作表添加到现有Excel文件?

时间:2014-09-22 19:31:01

标签: c# epplus

使用EPPlus我想在Excel文件中添加一个新工作表但我不想删除文件中的现有工作表(如果有),我想将其作为文件中的第一个工作表插入。 这是我为快速测试编写的内容,但它删除了所有现有的工作表:

using (ExcelPackage p = new ExcelPackage())
{
    p.Workbook.Worksheets.Add("HubaHuba");
    p.Workbook.Worksheets.MoveToStart("HubaHuba");
    ExcelWorksheet ws = p.Workbook.Worksheets[1];
    ws.Name = "HubaHuba";

    var cell = ws.Cells[1, 1];
    cell.Value = "dfsdfsdfsd";
    cell = ws.Cells[1, 2];
    cell.Value = "347895y5 Oh";

    Byte[] bin = p.GetAsByteArray();
    File.WriteAllBytes(path,bin);
}

2 个答案:

答案 0 :(得分:4)

那是因为你用命令File.WriteAllBytes重写文件。相反,您应该只调用p.Save()并且ExcelPackage需要使用接受文件路径的构造函数。然后它会工作。

答案 1 :(得分:2)

using (ExcelPackage excelEngine = new ExcelPackage())
{
     excelEngine.Workbook.Worksheets.Add("sheet1");
     excelEngine.Workbook.Worksheets.Add("sheet2");
     excelEngine.Workbook.Worksheets.Add("sheet3");

     String myFile= "c:\....\xx.xlsx";
     excelEngine.SaveAs();

}

使用Add时,工作表将添加到和当前文件工作表中。

如果要添加到特定位置,请使用此功能:

excelEngine.Workbook.Worksheets.Add("sheet0");
excelEngine.Workbook.Worksheets.MoveBefore(4, 1);

sheet0被添加到和的第4个位置,然后使用上一个代码将其移动到第一个位置。