【问题标题】:getValues() and setValues() - getting unformat datagetValues() 和 setValues() - 获取未格式化的数据
【发布时间】: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);
}

注意事项:

  1. 我已经尝试了两种方法:getValues()getDisplayValues()
  2. 我已经在代码的最后一行使用了importrange 变量,我得到了同样的错误,所以问题不在于使用ArrayLib 库对数据进行排序

你知道我在这里做错了什么吗?任何提示都非常受欢迎。

【问题讨论】:

  • 您是否尝试过更改单元格的格式? Format > Number > Select your formatting
  • 考虑共享一个可公开编辑的sample spreadsheet,其中包含逼真的源数据,并在同一电子表格的另一个选项卡中显示您手动输入的预期结果。

标签: google-apps-script google-sheets


【解决方案1】:

屏幕截图表明,一些数据是文本字符串,它们被 ArrayLib 或 Google 表格解释为日期。像1 7000 这样被解释为1 January 7000 的数据可能会发生这种情况。

我记得 Google 表格不会自动转换您使用 getDisplayValues() 读取并使用 setValues() 写入的文本字符串,因此我建议您在没有 ArrayLib 的情况下再次尝试您的脚本来验证您可以首先正确地读取和写入数据。

您可能想查看importDataFromManySpreadsheets 脚本,了解如何执行此操作的示例。

我认为还值得一提的是,整个事情可能可以使用内置的 importrange() 电子表格函数完成,包裹在 query() 中以对数据进行排序。应该是这样的:

=query( importrange("...", "STM_query!A2:G), "order by Col1 desc, Col5 asc, Col7 desc", 0 )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    相关资源
    最近更新 更多