我遇到了特定电子表格的问题。以下代码适用于许多电子表格。在这张特殊的纸上,当它击中foreach
并试图进入package.Workbook.Worksheets
时它会死亡。
protected void ParseExcelFile(Stream stream)
{
var package = new ExcelPackage(stream);
foreach (var sheet in package.Workbook.Worksheets.Where(s => CategoryTabNames.IsCategoryTabName(s.Name)))
{
//doing things
}
}
如果我查看Visual Studio中的Worksheets属性,它会说
系统参数异常
当调用方法捕获抛出的异常时,异常消息是
未找到请求的值“基线”。
我对下一步该去哪儿感到有点失落。该文件可以通过Excel打开。谢谢您的帮助。
事实证明,问题在于EPPlus如何处理垂直对齐。根据Open Office XML的规范,“baseline”应该是垂直对齐的可接受值。但是,EPPlus不会处理这个问题,所以它抛出异常。我们向开发人员发出推送请求,解释修复问题。
我认为我们之前没有遇到过这个问题,因为基线可能与none或空白相同。我认为应用程序用户通常使用的Sharepoint Excel编辑器只会将其留空,但有人必须使用Excel编辑器编辑工作表,而Excel编辑器使用此“基线”值。