【问题标题】:Adding a time stamp for data inserted into Google Sheets using Google BigQuery / Apps Script使用 Google BigQuery / Apps 脚本为插入 Google 表格的数据添加时间戳
【发布时间】:2021-07-29 06:23:48
【问题描述】:

我正在按照代码示例 here 使用 Google Apps 脚本将来自 BigQuery 的数据插入到 Google 表格中。

我能够让脚本工作,但我想将更新的时间戳作为新列添加到数据中。

请参阅上面的示例,在此特定部分中:

(原码)

  if (rows) {
    var spreadsheet = SpreadsheetApp.create('BiqQuery Results');
    var sheet = spreadsheet.getActiveSheet();

    // Append the headers.
    var headers = queryResults.schema.fields.map(function(field) {
      return field.name;
    });
    sheet.appendRow(headers);

    // Append the results.
    var data = new Array(rows.length);
    for (var i = 0; i < rows.length; i++) {
      var cols = rows[i].f;
      data[i] = new Array(cols.length);
      for (var j = 0; j < cols.length; j++) {
        data[i][j] = cols[j].v;
      }
    }
    sheet.getRange(2, 1, rows.length, headers.length).setValues(data);

举一个我想要达到的目标的例子,假设我运行了这个查询: select sample_data from data limit 3

结果:

sample_data
1
2
3

我想添加一个带有当前时间戳的附加数据列。我可以通过以下方式做到这一点: select sample_number, current_timestamp() as now from data

sample_number   now
1               2021-07-29 06:19:04.291269 UTC
2               2021-07-29 06:19:04.291269 UTC
3               2021-07-29 06:19:04.291269 UTC

但我想使用 Google Apps 脚本来实现这个结果,这样我就不需要将 current_timestamp() as now 附加到将使用此模块调用的所有 SQL 查询中。

我的想法是这样的:

sheet.getRange(2, 1, rows.length, headers.length + 1).setvalues(new Date());

但是,我认为这将是列长度不匹配。

我想我需要在数组中添加一个新列,然后添加 new Date() 作为行值,然后调用 .setValues() 将数组写入 Google 表格,但不知道该怎么做。

谁能帮帮我?

【问题讨论】:

    标签: google-apps-script google-bigquery


    【解决方案1】:

    setValues(values) 需要 Object[][]

    您应该将“日期列”添加到您的 data 数组,然后添加 setValues

    const date = new Date();
    for (let i = 0; i < data.length; i++) {
      if (i === 0) { row.push('now'); }
      else { row.push(date); }
    }
    sheet.getRange(2, 1, data.length, data[0].length).setValues(data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多