.net EPPlus无效地址格式错误

.net EPPlus无效地址格式错误,.net,excel,epplus,.net,Excel,Epplus,当尝试读取excel工作表时,我从数据库[BACKORDERS]收到错误无效的地址格式表\u QUERY\u它发生在这一行上 If package.Workbook.Worksheets.Count = 0 Then 事实上,每当我访问.Workbook时,我都会收到这个错误,这对我来说是一个彻底的阻碍。现在我已经阅读了excel文件(我不是excel专家),但是当我单击公式选项卡,然后单击名称管理器按钮时,会出现一个对话框,其中有五列“名称、值、引用、范围、注释”缺货订单有多个条目,并且在

当尝试读取excel工作表时,我从数据库[BACKORDERS]收到错误无效的地址格式表\u QUERY\u它发生在这一行上

 If package.Workbook.Worksheets.Count = 0 Then
事实上,每当我访问.Workbook时,我都会收到这个错误,这对我来说是一个彻底的阻碍。现在我已经阅读了excel文件(我不是excel专家),但是当我单击公式选项卡,然后单击名称管理器按钮时,会出现一个对话框,其中有五列“名称、值、引用、范围、注释”缺货订单有多个条目,并且在“引用”下的所有记录上都有一个值=Table\u Query\u from\u MS\u Access\u数据库[缺货订单]


当我点击参考位置时,我会被带到同一工作簿中的另一个工作表,并且,缺货列会突出显示。有人知道我该怎么纠正这个问题吗?

把你的列名作为空格。错误在这里:

一个对我有效的快速解决方法是,像这样做两次失败的呼叫:

var ws;
try{
    ws = package.Workbook.Worksheets[1];
}catch( Exception ){
    ws = package.Workbook.Worksheets[1];
}

在我这个简单的例子中,它足以让我继续下去。

我相信真正的原因是EPPlus不能有一个范围为“工作簿”的命名范围。您可以使用中所示的技术使用工作簿范围的名称,但要仅查找给定字段名的值,请确保该名称的范围为工作表。

如何在不先初始化的情况下使用“var ws”?您不能使用未初始化的局部变量AFAIK。但当我在try/catch块中声明并初始化它时,您的解决方案起了作用+1.