【问题标题】:EPPlus Invalid Address Format ErrorEPPlus 无效地址格式错误
【发布时间】:2020-05-01 08:08:49
【问题描述】:

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

 If package.Workbook.Worksheets.Count = 0 Then

事实上,每当我访问 .Workbook 时,我都会收到这个错误,这对我来说现在是一个完全的显示停止器。现在我已经阅读了 excel 文件(我不是 excel 专家),但是当我点击 Formulas 选项卡时,我点击了 Name Manager 按钮,一个对话框出现了五列。 “名称、值、引用对象、范围、评论” BackOrders 有多个条目,并且在引用对象下的所有记录上都是值 =Table_Query_from_MS_Access_Database[BackOrders]

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

【问题讨论】:

    标签: .net excel epplus


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你如何使用'var ws'而不先初始化它?您不能使用未初始化的局部变量 AFAIK。
    • 但是当我在 try/catch 块中声明并初始化它时,您的解决方案有效。 +1
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多