[英]How to add data to a Google Apps script in batches
我有一个连接到 MySQL 数据库并将结果放入 Google 表格的 gs 脚本。 我遇到的问题是它一次只在一个循环中插入一行,而且总结果集太大而无法这样做。
function readData() {
var conn = Jdbc.getConnection(url, username, password);
var stmt = conn.createStatement();
var results = stmt.executeQuery('SELECT SUBSTRING_INDEX(time, \':\', 2) as Hour, ticker, count(ticker) as count FROM wsb.data WHERE day =\'2021-01-29\' GROUP by SUBSTRING_INDEX(time, \':\', 2), ticker, day ORDER BY time desc ,count(ticker) desc');
var metaData=results.getMetaData();
var numCols = metaData.getColumnCount();
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('Sheet1');
sheet.clearContents();
var arr=[];
for (var col = 0; col < numCols; col++) {
arr.push(metaData.getColumnName(col + 1));
}
sheet.appendRow(arr);
while (results.next()) {
arr=[];
for (var col = 0; col < numCols; col++) {
arr.push(results.getString(col + 1));
}
sheet.appendRow(arr);
}
results.close();
stmt.close();
sheet.autoResizeColumns(1, numCols+1);
}
有没有办法立即从 MySQL 中删除整个结果集,就像我从 MySQL 结果复制/粘贴到 MySQL Workbench 一样?
试试这个:
function readData() {
var conn = Jdbc.getConnection(url, username, password);
var stmt = conn.createStatement();
var results = stmt.executeQuery('SELECT SUBSTRING_INDEX(time, \':\', 2) as Hour, ticker, count(ticker) as count FROM wsb.data WHERE day =\'2021-01-29\' GROUP by SUBSTRING_INDEX(time, \':\', 2), ticker, day ORDER BY time desc ,count(ticker) desc');
var metaData = results.getMetaData();
var numCols = metaData.getColumnCount();
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('Sheet1');
sheet.clearContents();
var vA = [];
var arr = [];
for (var col = 0; col < numCols; col++) {
arr.push(metaData.getColumnName(col + 1));
}
vA.push(arr);
while (results.next()) {
arr = [];
for (var col = 0; col < numCols; col++) {
arr.push(results.getString(col + 1));
}
vA.push(arr);
}
results.close();
stmt.close();
sheet.getRange(1, 1, vA.length, vA[0].length).setValues(vA);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.