Google apps script getValues()和setValues()-获取未格式化数据
我想用应用程序脚本替换gsheet上的函数。因此,我使用的方法是Google apps script getValues()和setValues()-获取未格式化数据,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想用应用程序脚本替换gsheet上的函数。因此,我使用的方法是getValues()和setValues()。但是,当我运行脚本时,该范围的第一列中有行未格式化。最初的数据格式是string,但在某些行中,我得到了某种日期格式(请参见带有屏幕截图的链接)。例如,在第67行中,我应该得到如下链接http://admin.(……)/73100 注: 我已经尝试过这两种方法:getValues()和getDisplayValues() 我已经在代码的最后一行使用了importrange变量,并且我
getValues()
和setValues()
。但是,当我运行脚本时,该范围的第一列中有行未格式化。最初的数据格式是string,但在某些行中,我得到了某种日期格式(请参见带有屏幕截图的链接)。例如,在第67行中,我应该得到如下链接http://admin.(……)/73100
注:
getValues()
和getDisplayValues()
importrange
变量,并且我得到了相同的错误,因此问题不在于使用ArrayLib
库对数据进行排序你知道我会做错什么吗?任何提示都非常受欢迎。屏幕截图显示,一些数据是文本字符串,ArrayLib或Google Sheets会将其解释为日期。这可能发生在被解释为
17000年1月1日的17000
等数据上
我记得Google Sheets不会自动转换您使用getDisplayValues()
读取和使用setValues()
写入的文本字符串,因此我建议您在没有ArrayLib的情况下再次尝试脚本,以验证您首先能够正确读取和写入数据
您可能需要查看脚本,以获取如何执行此操作的示例
我认为还值得一提的是,整个过程可能都可以通过内置的importrange()
电子表格功能完成,该功能封装在query()
中,用于对数据进行排序。应该是这样的:
=query(importrange(“…”,“STM_query!A2:G),“order by Col1 desc,Col5 asc,Col7 desc”,0)
屏幕截图显示,一些数据是文本字符串,被ArrayLib或Google Sheets解释为日期。这可能发生在1 7000
等被解释为1 7000
的数据上
我记得Google Sheets不会自动转换您使用getDisplayValues()
读取和使用setValues()
写入的文本字符串,因此我建议您在没有ArrayLib的情况下再次尝试脚本,以验证您首先能够正确读取和写入数据
您可能需要查看脚本,以获取如何执行此操作的示例
我认为还值得一提的是,整个过程可能都可以通过内置的importrange()
电子表格功能来完成,该功能封装在query()
中,用于对数据进行排序
=query(importrange(“…”,“STM_query!A2:G),“order by Col1 desc,Col5 asc,Col7 desc”,0)
您尝试过更改单元格的格式吗<代码>格式>数字>选择格式
考虑共享一个具有真实外观的源数据的公共可编辑文件,并在同一电子表格的另一个选项卡中显示手动输入的预期结果。是否尝试更改单元格的格式<代码>格式>数字>选择格式
考虑共享一个具有真实外观的源数据的公共可编辑文件,并在同一电子表格的另一个选项卡中显示手动输入的预期结果。
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);
}