【发布时间】:2021-05-10 07:58:47
【问题描述】:
我想用应用程序脚本替换我在 gsheet 上的 ImportRange 函数。因此,我使用getValues()和setValues()等方法。但是,当我运行脚本时,该范围的第一列的行没有格式化。原始数据格式是字符串,但在某些行中,我得到了一种日期格式(请参阅带有屏幕截图的链接)。例如,在第 67 行,我应该得到一个类似 http://admin.(.....)/73100 的链接。
Screenshot of the data returned by the script
function paste_main_query() {
var ss=SpreadsheetApp.openById("(ID)");
var destination = ss.getSheetByName("STM_query");
var import_range_aux= destination.getRange('A2:A').getValues();
var numRows = import_range_aux.filter(String).length;
var import_range = destination.getRange('A2:G'+numRows).getDisplayValues()
var sorted_1 = ArrayLib.sort(import_range,6,false) // ascending column 4
var sorted_2 = ArrayLib.sort(sorted_1,3,true) // ascending column 4
var sorted_3 = ArrayLib.sort(sorted_2,0,false) // ascending column 4
var destination = ss.getSheetByName("import_range_aux");
destination.getRange('A2:G').clearContent();
destination.getRange(2,1,sorted_3.length, sorted_3[0].length).setValues(sorted_3);
}
注意事项:
- 我已经尝试了两种方法:
getValues()和getDisplayValues() - 我已经在代码的最后一行使用了
importrange变量,我得到了同样的错误,所以问题不在于使用ArrayLib库对数据进行排序
你知道我在这里做错了什么吗?任何提示都非常受欢迎。
【问题讨论】:
-
您是否尝试过更改单元格的格式?
Format > Number > Select your formatting -
考虑共享一个可公开编辑的sample spreadsheet,其中包含逼真的源数据,并在同一电子表格的另一个选项卡中显示您手动输入的预期结果。
标签: google-apps-script google-sheets