用于将工作簿复制到工作簿数据的脚本

时间:2015-09-14 19:59:12

标签: google-apps-script google-sheets spreadsheet

脚本将在源工作簿中运行。

function CopyDataToNewFile() {

 var sss = SpreadsheetApp.openById('1yeS6_qhURUYHVkImLNMjdGUeMWhPDwQKdLNgpygiwG4'); // sss = source spreadsheet

 var ss = sss.getSheetByName('Sheet1'); // ss = source sheet

 //Get full range of data

 var SRange = ss.getDataRange();

 //get A1 notation identifying the range

 var A1Range = SRange.getA1Notation();

 //get the data values in range

 var SData = SRange.getValues();



var tss = SpreadsheetApp.openById('1KQBsMJ0vgBQwkM89d166RPyVahIZY3DRSOWVCB4zapE'); // tss = target spreadsheet

 var ss = SpreadsheetApp.getActiveSpreadsheet();

var first = ss.getSheetByName('Sheet1');

sheet.clear({ formatOnly: false, contentsOnly: true });



 var tss = SpreadsheetApp.openById('1KQBsMJ0vgBQwkM89d166RPyVahIZY3DRSOWVCB4zapE');

 var ts = tss.getSheetByName('Sheet1'); // ts = target sheet

 //set the target range to the values of the source data

 ts.getRange(A1Range).setValues(SData);

}

将设置为在表单提交时触发。将数据从一个工作簿中的工作表复制到另一个工作簿中的工作表。两张纸的格式都相同,且必须保持不变。 Row&列数/大小在每张纸上都相同。

1 个答案:

答案 0 :(得分:0)

这是一个代码,它将遍历源工作簿的所有工作表并复制当前工作簿中的数据。工作表名称与源电子表格相同,只复制数据。

编辑:代码更改为不复制,但将数据从电子表格导入到目标电子表格,我们假设已经创建了工作表。如果工作表不存在,我们创建它。

function importWorkBook(){
  var idSource = "IdOfTheSheetSource";
  var sheets = SpreadsheetApp.openById(idSource).getSheets();
  var current = SpreadsheetApp.getActiveSpreadsheet();
  for(var i in sheets){
    var sheet = sheets[i];
    var data = sheet.getDataRange().getValues();
    var destSheet = current.getSheetByName(sheet.getName());
    if(destSheet){
      destSheet.getRange(1,1,destSheet.getMaxRows(),destSheet.getMaxColumns()).clearContent();
      destSheet.getRange(1,1,data.length,data[0].length).setValues(data);
      Logger.log(sheet.getName() + " imported");
    }else{
      var newSheet = current.insertSheet(sheet.getName());
      newSheet.getRange(1,1,data.length,data[0].length).setValues(data);
      Logger.log(sheet.getName() + " created");
    }
  }
}

斯特凡