使用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);
}
答案 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个位置,然后使用上一个代码将其移动到第一个位置。