在Excel Online中获取范围值时发生内部服务器错误

我正在使用下面的函数从Excel在线获取范围值。 我正在使用Microsoft开发的脚本实验室插件。

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的行时,出现内部服务器错误exception。

请注意,在包含数字和文本的正常Excel文件中没有看到此行为。 我的工作表包含(特别是在K列,我试图从程序中获取)在每个单元格中超过250个字符。 当我使用这个模板时,我得到这个内部服务器错误。 此外,只有在Excel Online中才能看到此问题,并且在Excel桌面客户端中完美工作。

这是一个相当大的数据集。 打一个这样大的范围是一个已知的问题。

从文档 :

读或写大范围

如果范围包含大量的单元格,值,数字格式和/或公式,则可能无法在该范围上运行API操作。 API将始终尝试在某个范围上运行所请求的操作(即,检索或写入指定的数据),但尝试执行大范围的读取或写入操作可能会导致由于资源过多而导致的API错误利用。 为避免此类错误,我们build议您针对较大范围的较小子集运行单独的读取或写入操作,而不是尝试在较大范围内运行单个读取或写入操作。