C# EPPlus-使用模板时保存的文件已损坏

C# EPPlus-使用模板时保存的文件已损坏,c#,export-to-excel,epplus,C#,Export To Excel,Epplus,我正在评估ePlus作为GemBox的替代品,但甚至无法保存有效的Excel文件。我有一个最小的C代码: 图书馆: public Stream GenerateReport(string templateFilePath) { using (var xls = new OfficeOpenXml.ExcelPackage(new FileInfo(templateFilePath), true)) { var stream = new MemoryStream();

我正在评估ePlus作为GemBox的替代品,但甚至无法保存有效的Excel文件。我有一个最小的C代码:

图书馆:

public Stream GenerateReport(string templateFilePath)
{
    using (var xls = new OfficeOpenXml.ExcelPackage(new FileInfo(templateFilePath), true))
    {
      var stream = new MemoryStream();
      xls.SaveAs(stream);
      stream.Position = 0;
      return stream;
    }
}
在控制器中:

return File(GenerateReport("filename.xltx"), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "filename.xlsx");
文件已成功创建并保存,但当我使用Excel打开时,出现错误:

“我们发现'filename.xlsx'中的某些内容有问题。是否要删除?” 尽可能多地恢复?”

我回答是,然后得到:

“Microsoft Excel无法打开或修复工作簿,因为 它是腐败的”

我已经验证了模板文件的格式是否正确,这里关于stackoverflow的其他建议解决方案都没有解决这个问题

有什么建议吗

更新:

我还尝试了不使用模板的方法,并且没有问题:

using (var xls = new OfficeOpenXml.ExcelPackage())
{
   xls.Workbook.Worksheets.Add("New");
   var stream = new MemoryStream();
   xls.SaveAs(stream);
   stream.Position = 0;
   return stream;
}
更新2:


将.xltx模板保存为.xlsx并使用.xlsx作为模板打开时不会出现任何错误。

我最近发现了类似的错误(Excel抱怨某些无效的xl/styles.xml部分)。搜索之后,我找到了解决方案:将版本更改为3.1.3(3.1.2有一个bug)。看起来3.1.1也不错。

我在这里回答了一个类似的问题:


简短回答:EPPlus实际上不支持xltx模板文件,“template”参数只需要一个适当的预格式化xlsx文件。

如果您要求这样做,那就更好了support@gemboxsoftware.comSorry,标题不对。应该说EPPlus,而不是GemBoxYep,这也是我发现的。把你的答复作为答案