如何解决由EPPlus .Net库生成的Excel打开错误

时间:2019-02-15 09:19:44

标签: c# .net epplus

我正在从一个模板中生成多个excel副本(它确实很大)。 为此,我首先从文件位置获取模板,然后基于每次迭代的循环,创建一个新的ExcelPackage(newFile,Template)。 在那之后,我得到了我必须编辑的确切ExcelWorksheet。 然后编辑后,我将文件另存为newFile。打开保存的文件的时间出现两个问题:

  1. 如果PC上没有正在运行的Excel实例,则保存的文件正在打开,但是没有数据。
  2. 如果Excel实例正在运行,则保存的文件将打开,并显示警告消息,但可以正常工作。 “ Excel有一些内容问题。您要我们恢复吗?”和“ Excel能够恢复一些不可读的内容”

    string templateExcel = @"Location\template.xlsx";
    FileInfo templateFile = new FileInfo(@"Location\newFile.xlsx");
    using (FileStream templateExcelStream = File.OpenRead(templateExcel))
    {
        using (ExcelPackage copyExcel = new ExcelPackage(templateExcelStream))
        {
            ExcelWorksheet presentWorkSheet = copyExcel.Workbook.Worksheets["Name"];
            presentWorkSheet.Cells[4, 2].Value = Value from condition;
            copyExcel.SaveAs(templateFile);
        }
    }
    

1 个答案:

答案 0 :(得分:1)

感谢大家的宝贵时间。我找到了解决方案。 对我来说,问题出在模板本身,因为它包含对查找表的无效引用。我在公式->名称管理器中找到了它。

如果您遇到此问题,建议您检查模板。