我想将工作表从模板工作簿复制到新工作簿。我已经在其他项目中使用过此代码,并且可以正常工作,但是现在我遇到了excel工作簿的问题,但是我不知道这是什么问题。这是代码:
byte[] file = File.ReadAllBytes(source);
using (var ms = new MemoryStream(file))
{
var package = new ExcelPackage(ms);
var worksheet = package.Workbook.Worksheets[1];
var copyPackage = new ExcelPackage(new FileInfo(destination));
// the following line causes a ArgumentOutOfRangeException
copyPackage.Workbook.Worksheets.Add(worksheet.Name, worksheet);
copyPackage.Save();
}
这是异常的堆栈跟踪(抱歉,德语):
Der Index lag außerhalb des Bereichs. Er darf nicht negativ und kleiner als die Sammlung sein.
Parametername: index
bei System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
bei OfficeOpenXml.Style.ExcelStyle.get_XfId()
bei OfficeOpenXml.ExcelStyles.CreateNamedStyle(String name, ExcelStyle Template)
bei OfficeOpenXml.ExcelStyles.CloneStyle(ExcelStyles style, Int32 styleID, Boolean isNamedStyle, Boolean allwaysAdd)
bei OfficeOpenXml.ExcelWorksheets.CloneCells(ExcelWorksheet Copy, ExcelWorksheet added)
bei OfficeOpenXml.ExcelWorksheets.Add(String Name, ExcelWorksheet Copy)
bei CopyExcel.Program.Main(String[] args) in D:\spikes\CopyExcel\CopyExcel\Program.cs:Zeile 26.