【发布时间】: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