3

尝试读取 excel 工作表时,我收到错误Invalid Address format TABLE_QUERY_FROM_MS_ACCESS_DATABASE[BACKORDERS]它发生在这一行...

 If package.Workbook.Worksheets.Count = 0 Then

事实上,每当我访问 .Workbook 时,我都会收到这个错误,这对我来说现在是一个完整的表演障碍。现在我已经阅读了 excel 文件(而且我不是 excel 专家),但是当我单击“公式”选项卡,然后单击“名称管理器”按钮时,会出现一个包含五列的对话框。“名称、值、引用到、范围、评论” BackOrders 有多个条目,并且在引用到下的所有记录上是值=Table_Query_from_MS_Access_Database[BackOrders]

当我单击引用位置时,我被带到同一工作簿中的另一个工作表,并且BackOrders列被突出显示。有谁知道我该如何纠正这个问题?

4

2 回答 2

4

你的列名作为一个空格在里面。错误在这里:https ://epplus.codeplex.com/workitem/14779

一个对我有用的快速解决方法是像这样两次调用失败的调用:

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

在我的简单案例中,它足以让我继续前进。

于 2013-10-01T14:48:31.700 回答
0

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

于 2020-05-01T00:08:49.690 回答