Code.gs中的returnObject是否有大小限制?

时间:2017-04-29 09:48:36

标签: google-apps-script

Code.gs中的函数returnObject是否有大小限制?

我使用相同的逻辑实现了多个功能,但是当我执行以下操作时,Sheet的命名范围有6000行(包含21列):

custom_js_file.js

google.script.run.withSuccessHandler(successHandlerMyGreatFunction).withFailureHandler(failureHandlerMyGreatFunction).myGreatFunction(); 

Code.gs

function myGreatFunction() {

var active_spreadsheet = SpreadsheetApp.openById("AAAA");

var active_sheet = active_spreadsheet.getSheetByName("BBBB");

var my_entries = active_sheet.getRange("my_entries_range").getValues();

var return_object = {};

return_object['my_entries'] = my_entries; 

return return_object;

}

我明白了:

  

ScriptError:脚本已完成但返回的值不是a   支持返回类型。

我尝试过以上的变体:

  • 使用getDataRange()
  • 只返回my_entries而不将其添加为变量return_object中的键值。

但我得到同样的信息。

我能想到的唯一异常是工作表有冻结的列并且有6000行 - 这些是否会对returnObject产生负面影响?

1 个答案:

答案 0 :(得分:0)

这是因为:

  

显然Date-types不是合法的参数类型或返回类型   (这也适用于数组,对象中的变量......)

来自:Google Apps Script return object in Code.gs

所以修改后的代码是:

function myGreatFunction() {

var active_spreadsheet = SpreadsheetApp.openById("AAAA");

var active_sheet = active_spreadsheet.getSheetByName("BBBB");

var my_entries = active_sheet.getDataRange().getDisplayValues();

var return_object = {};

return_object['my_entries'] = my_entries; 

return return_object;

}

它使用getDisplayValues()而不是getValues()

我不知道这是否会引发任何其他数据准确性问题等。