EPPlus 显示系统参数异常

EPPlus Shows System Argument Exception

我在使用 C# 和 EPPlus 阅读工作簿中的某些工作表时遇到问题。

错误信息

name contains invalid characters

即使对工作簿中的工作表名称、文件名和列 headers 进行了多次检查以确保没有无效字符,我仍然面临同样的错误。

但是,当我将我需要的工作表从同一工作簿移动到新的 Excel 文件并使用相同的文件名和工作表名称保存时,我在读入时没有错误。

有人知道如何解决甚至遇到这个问题吗?

代码

 using (ExcelPackage xlPackage = new ExcelPackage(mStream))
 {
    //WorksheetId = 5
    var ws = xlPackage.Workbook.Worksheets[WorksheetId]; //This is the part that is causing error

      for (int i = 1; i <= ws.Dimension.End.Column; i++)
      {
         dt2.Columns.Add((i - 1).ToString());
      }
 }

遇到这个 LINK 并意识到这实际上是 EPPlus 4.5.2.2 及更高版本中的一个错误。

恢复到旧版本后,一切正常。

有一个更改,错误中提到的“名称”不是 sheet 名称。Excel 软件的“公式”选项卡中有一个名为“名称管理器”的部分. 在那里你会找到名字和参考的列表。当 EPPlus 尝试验证名称范围时,会根据 EPPlus 的源代码生成上述错误。 我不得不修改 EPPlus 源代码以忽略错误,因为我正在处理的文件已被锁定并且需要按原样保留。