【发布时间】: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