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

时间:2017-12-01 18:41:10

标签: excel office-js

我使用以下函数在线获取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中完美运行。

1 个答案:

答案 0 :(得分:0)

这是一组相当大的数据。对如此大的范围进行单次调用是一个已知问题。

来自documentation

  

读取或写入大范围

     

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