当我在营销方面工作时,我是Google App Scripts和JavaScript的新手。我目前正在尝试在Google表格中创建一个数据库,以便在DataStudio中使用,因为我希望混合各种来源的数据。
我有一张带有工作表的Google表格(通过附加组件)和另一张我打算用作数据库的工作表。我想要做的是将数据保存在数据库中,每次在电子表格的末尾保存新数据(我将在脚本工作时设置基于时间的触发器)。我使用Google的文档编写了一个脚本,但它只是将我的数据表的第一行复制到数据库中。我需要它将数据表中的所有内容复制到数据库表。
这是我现在的脚本:
// function to save data
function saveData() {
// starts with active sheet for data entry
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Data");
// collects values in data entry row
var url = sheet.getRange("Data!A1:A").getValues();
var follower_count = sheet.getRange("Data!B1:B").getValues();
var date = sheet.getRange("Data!C1:C").getValues();
// identifies and adds data to Database
var data1 = ss.getSheetByName("Database");
var aVals = data1.getRange("A1:A").getValues();
var aLastRow = aVals.filter(String).length;
Logger.log(aLastRow);
var newAttData = [[url,follower_count,date]];
Logger.log(newAttData);
data1.getRange(aLastRow +1,1,1,3).setValues(newAttData);
}
我试图改变最后一行的范围宽度和长度,但我总是收到错误:
范围高度不正确,为1,但应为3(第31行,文件"代码")
我花了很多时间在这上面,但我无法让它发挥作用。任何帮助都会很棒!
答案 0 :(得分:0)
如文档中所述:
setValues方法(值) 设置矩形网格值(必须与此范围的尺寸匹配)。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0];
//二维数组的大小必须与范围的大小相匹配。 var values = [ [“2.000”,“1,000,000”,“2.99美元”] ];
var range = sheet.getRange(“B2:D2”); range.setValues(值);