如何通过Google App Script将数据从多个标签中提取到一个google工作表中

时间:2017-08-02 16:02:37

标签: google-apps-script google-sheets

全部,

在我解释这个问题之前,我想提供一些有关我正在与之合作的信息。

标签1可以包含列:日期,州,实际/预测,值

标签2可以包含列:日期,实际/预测,值

标签3将包含:日期,实际/预测,值

我需要从选项卡1和2中提取日期,实际/预测和值列,并以适当的表格格式填充到选项卡3,而不需要列A的任何空白行/中断。我理想地希望通过单击选项卡3上的按钮。我将如何进行此操作?我发现我可以通过以下方式复制一张表格的数据:

function MoveData() {
var ss = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1");
var ss3 = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet3");
ss.getRange("A2:A").copyTo(ss3.getRange("A2"), {contentsOnly:true});
ss.getRange("C2:C").copyTo(ss3.getRange("B2"), {contentsOnly:true});
ss.getrange("D2:D").copyTo(ss3.getrange("C2"), {contentsOnly:true});
}

下一步是从第二张表中填充数据,正好在通过此功能提取的内容之下。

非常感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:2)

我认为这会做你所描述的。

function MoveData() {
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1");
var ss2=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet2");
var ss3=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet3");
ss.getRange("A2:A").copyTo(ss3.getRange("A2"), {contentsOnly:true});
ss.getRange("C2:C").copyTo(ss3.getRange("B2"), {contentsOnly:true});
ss.getrange("D2:D").copyTo(ss3.getRange("C2"), {contentsOnly:true});
var nextRow=ss3.getLastRow()+1;//I assume that the above results in 
same size columns.
ss2.getRange("A2:A").copyTo(ss3.getRange(nextRow,1), 
{contentsOnly:true});
ss2.getRange("B2:B").copyTo(ss3.getRange(nextRow,2), 
{contentsOnly:true});
ss2.getrange("C2:C").copyTo(ss3.getRange(nextRow,3), 
{contentsOnly:true});
}