我在使用C#和EPPlus从工作簿中读取某些工作表时遇到问题。
错误消息
name contains invalid characters
即使在对工作簿中的工作表名称,文件名和列标题进行多次检查以确保没有无效字符之后,我仍然遇到相同的错误。
但是,当我将所需的工作表从同一工作簿移至新的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());
}
}
答案 0 :(得分:0)
熟悉此LINK,并意识到这实际上是EPPlus从4.5.2.2版开始的错误。
还原到旧版本后,一切正常。
答案 1 :(得分:0)
有一个更改,错误中提到的“名称”不是工作表名称。.Excel软件的“公式”选项卡中有一个名为“名称管理器”的部分。 在那里您可以找到名称和参考的列表。当EPPlus尝试验证名称范围时,会生成以上每个EPPlus源代码的错误。 我必须修改EPPlus源代码以忽略该错误,因为我正在处理的文件已被锁定,需要按原样保存。