使用Google表格,在将数据传输到“数据库”页面之前,已将数据输入到单元格中。
问题:
1)传输完成后,以前的条目将被新条目替换。
2)数据库将从另一行(即第35行)而不是第1行开始。
问题:是什么引起了两个问题,以及如何解决这些问题?
下面是我的脚本。预先感谢!
function setValue(cellName, value) {
SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).setValue(value);
}
function getValue(cellName) {
return SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).getValue();
}
function getNextRow() {
return SpreadsheetApp.getActiveSpreadsheet().getLastRow() + 1;
}
function addTrade(a,b,c,d,e,f,g) {
var row = getNextRow();
setValue('Meta4!B' + row, a);
setValue('Meta4!C' + row, b);
setValue('Meta4!D' + row, c);
setValue('Meta4!E' + row, d);
setValue('Meta4!F' + row, e);
setValue('Meta4!G' + row, f);
setValue('Meta4!H' + row, g);
}
function submitTrade() {
addTrade(new Date(), getValue('Dashboard!N3'), getValue('Dashboard!N4'), getValue('Dashboard!N5'), getValue('Dashboard!N6'), getValue ('Dashboard!N7'), getValue('Dashboard!N8'));
var app = SpreadsheetApp;
var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
activeSheet.getRange('Dashboard!N3:O8').clearContent();
}
答案 0 :(得分:1)
getLastRow
在不正确的工作表上执行getLastRow
function transposeWithDate() {
var cfg = {
ssh: 'Dashboard',//sourceSheet
sRng: 'N3:N8',//sourceRange
tsh: 'Meta4',//targetSheet
dt: new Date(),
};
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName(cfg.ssh);
var values = source.getRange(cfg.sRng).getValues(); //[[1],[2],[3]]
var target = ss.getSheetByName(cfg.tsh);
var lastRow = target.getLastRow();
values.unshift([cfg.dt]); //add Date
var transposedVal = [ //transpose values [[date,1,2,3]]
values.map(function(e) {
return e[0];
}),
];
target
.getRange(lastRow + 1, 2, transposedVal.length, transposedVal[0].length)
.setValues(transposedVal);
}