你好,在google应用程序脚本表中,我试图弄清楚如何将第4列添加到一个现有的、完全填充的3列数组中。第4列将被设置为前3列的级联和操作字符串。
我的最终目标是从前3个值中创建一个sql数据库插入字符串。例如,如果数组行为1, 2,3列,则将其设置为插入表值(1、2、3);(而不是编程数据库连接,而是插入的实际SQL字符串)
你能帮我解决我如何在数组中工作的语法或伪代码吗?我们非常感谢你的帮助
类似于:
const range=SheetHistory.getDataRange();
var array=range.getValues();
/*pseudo code*/
array = array + 4th column //add a 4th column to the array or move data to a new 4 column array
For x = 1 through end of array ++x) // loop through array
Array [x,4] = [x,1] & [x,3] [x,4] // set column 4 for each row = to a concatenated string derived from columns 1,2,3 for that row
next x // repeat until end of array发布于 2020-06-25 04:04:17
您可以简单地遍历整个数组,并在每行索引处添加第四列的值,如
for (var i = 0; i < array.length ; i++) {
array[i]["4th column"]=String(array[i]["1"])+String(array[i]["2"])+String(array[i]["3"]);
}发布于 2020-06-25 04:03:16
试试这个:
function addAColumn() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getActiveSheet();
const rg=sh.getRange(1,1,sh.getLastRow(),sh.getLastColumn()+1);//add a column here
var vs=rg.getValues().map(function(r){return[r[0],r[1],r[2],String(r[0])+String(r[1])+String(r[2])];});//fill it here
sh.getRange(sh.getLastRow()+1,1,vs.length,vs[0].length).setValues(vs);
}此函数将向3列电子表格中添加一列,第四列中填充前3列的字符串和。
发布于 2020-06-25 08:24:33
这很简单,诀窍是您的数组是由行(第一维度)和列(第二维度)组成的2D数组。因此,对于数组中的每一行,连接所有列并将结果存储在行中的一个新列中就可以做到这一点。
例如:
function makeSQLString() {
const range=SpreadsheetApp.getActiveSheet().getDataRange();
var array=range.getValues();
for (var i = 0; i < array.length ; i++) {
array[i][3]=String(array[i][0])+String(array[i][1])+String(array[i][2]);
}
console.log(array);
}https://stackoverflow.com/questions/62567415
复制相似问题