【问题标题】:Couldn't load cell value for more than 12000 rows in Excel using Office js Excel API无法使用 Office js Excel API 在 Excel 中加载超过 12000 行的单元格值
【发布时间】:2020-04-14 14:18:32
【问题描述】:

我们使用 office js API 创建了一个 Excel 插件。在我们的扩展中,我们有一个模块,我们从 excel 表中获取数据然后处理它。该实现可以正常工作到 12000 行,之后 API 返回 500 内部服务器错误。我试图找出 excel range API 的限制,但找不到任何合适的链接。请在下面找到参考代码。

await Excel.run(async context => {
          let sheet;
          sheet = context.workbook.worksheets.getItem('Sheet 1');
          let range = sheet.getRange('A1:O12000');
  ​        range.load("values");
          await context.sync();
          console.log("Excel data", range.values);
}

如果有任何限制,谁能告诉我。我确实有一个工作想法,即将范围分成 12000 行的块并加载数据。但仍然只是想确定 API 是否有数据大小限制。提前谢谢你。

当我在我的代码中添加一个 try catch 时,我发现我的 catch 块中出现了以下错误。 (当范围为 A1:O13000 时)

await Excel.run(async context => {
          try {
          let sheet;
          sheet = context.workbook.worksheets.getItem('Sheet 1');
          let range = sheet.getRange('A1:O13000');
  ​        range.load("values");
          await context.sync();
          console.log("Excel data", range.values);
          } catch (e){
             console.error(e);
          }

}

我得到的错误

【问题讨论】:

  • 我刚刚尝试了你的示例代码,我无法重现这个问题。它在我这边工作正常。这是我的要点,我在 Script Lab 中尝试过 gist.github.com/lumine2008/633f3967d0a55a7f2993c81c472e88a8
  • 它实际上可以在桌面上运行,但不能在网络上运行。我确实使用了我现在在问题中更新的不同范围
  • 我在 excel 中在线尝试了我的要点,它确实有效。范围内的内容是什么? A1:O12000 是否包含大量文字?
  • 所有单元格最多有 1 或 2 个单词。 Excel 在线工作至 A1:O12000。当我们再增加 1000 时,我猜它会达到 API 大小限制。
  • 您是说,当您将代码更改为 let range = sheet.getRange("A1:O13000"); 时会抛出错误// A1:O12000 -> A1:O13000?

标签: javascript office-js jexcelapi


【解决方案1】:

感谢纳文的提问。我们有 2 个限制:a) Excel Online 的有效负载大小限制为 5MB,b) 范围限制为 500 万个单元格。

根据您的样本,它低于这些限制。我还用 Script Lab 尝试了你的代码,它运行正常。这是我的要点:https://gist.github.com/lumine2008/633f3967d0a55a7f2993c81c472e88a8

文档可以在https://docs.microsoft.com/en-us/office/dev/add-ins/develop/common-coding-issues#excel-range-limits找到

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多