将数据从一个 Google 电子表格保存到另一个电子表格以创建数据库



我是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 行,文件"代码"(

我花了很多时间在这上面,但我无法让它工作。任何帮助都会很棒!

如文档中所述:

设置值(值( 设置值的矩形网格(必须与此区域的尺寸匹配(。

var ss = SpreadsheetApp.getActiveSpreadsheet((; var sheet = ss.getSheets(([0];

二维数组的大小必须与范围的大小匹配。 变量值 = [ [ "2.000", "1,000,000", "$2.99" ] ];

var range = sheet.getRange("B2:D2"(; range.setValues(values(;

参考

相关内容

最新更新