Google App脚本 - 将数据插入下一列

时间:2017-02-06 18:14:51

标签: javascript google-apps-script

此脚本从工作表中提取数据并将其插入新工作表中。我希望第二个函数每次都插入第三行。

我希望结果是 -

时间戳|印象|点击率

function AggregateData() {
Impressions();
CTR();
}

function Impressions() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Metrics");
var source = sheet.getRange("G16:H16");
var values = source.getValues();
var sheet = ss.getSheetByName("Aggregate");
values[0][0] = new Date();
sheet.appendRow(values[0]);
};

function CTR() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Metrics");
var source = sheet.getRange("F16:G16");
var values = source.getValues();
var sheet = ss.getSheetByName("Aggregate");
values[0][0] = new Date();
sheet.appendRow(values[0]);
};

此代码将第二个函数附加在第一个函数的结果下面的第二列中。

1 个答案:

答案 0 :(得分:0)

此代码会按您想要的顺序将数据复制到新工作表。但是,我把它减少到一个功能。您的代码将新数据放入新行的原因是这一行:

Sheet.appendRow(data)

将您提供的数据放入一个空的新行。这也是我将这两个功能合二为一的原因。

function AggregateData() {
Impressions();
}

function Impressions() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName("Metrics");
 var source = sheet.getRange("F16:H16");
 var values = source.getValues();
 var pasteValues = []  // create new array which will hold the data you need to be pasted into the aggregate Sheet
 pasteValues[0] = [] // Adding a second dimesion to the array
 var sheet = ss.getSheetByName("Aggregate");
 // below 3 lines does the switch of data and adds the time stamp
 pasteValues[0][0] = new Date();
 pasteValues[0][1] = values[0][2]   //Copy the col h (impressions value) value into the new array
 pasteValues[0][2] = values[0][1]   //Copy the col G (impressions value) value into the new array
 sheet.appendRow(pasteValues[0]); //Append the new array into the sheet
};