Google apps script getValues()和setValues()-获取未格式化数据

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变量,并且我

我想用应用程序脚本替换gsheet上的函数。因此,我使用的方法是
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);
    }