我使用以下函数在线获取Excel中的范围值。我正在使用Microsoft开发的Script labin插件。
Excel.run(function (ctx) {
var sheetName = "Sheet1";
var rangeAddress = "K6:K500";
var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
range.load('values');
return ctx.sync().then(function () {
console.log(range);
});
}).catch(function (error) {
console.log("Error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
问题是当我尝试获取超过500的行时,我收到内部服务器错误异常。
请注意,在包含数字和文本的普通Excel文件中看不到此行为。我的工作表包含(特别是在我试图从程序中获取的K列)每个单元格中超过250个字符。当我使用此模板时,我收到此内部服务器错误。此问题仅在Excel Online中可见,并且在Excel Desktop Client中完美运行。
答案 0 :(得分:0)
这是一组相当大的数据。对如此大的范围进行单次调用是一个已知问题。
读取或写入大范围
如果范围包含大量单元格,值,数字格式和/或公式,则可能无法在该范围上运行API操作。 API将始终最佳地尝试在范围上运行所请求的操作(即,检索或写入指定的数据),但尝试对大范围执行读取或写入操作可能会因资源过多而导致API错误利用。为避免此类错误,我们建议您对较大范围的较小子集运行单独的读取或写入操作,而不是尝试在较大范围内运行单个读取或写入操作。