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



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

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);
}

将设置为在表单提交时触发。将数据从一个工作簿中的工作表复制到另一个工作簿中的工作表。两张表格格式相同,不得更改。行,每一页上的列数/大小相同

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

EDIT:代码更改为不复制数据,而是将数据从电子表格导入到一个dest电子表格中,我们假设该电子表格已经创建。如果sheet不存在,则创建它。

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");
    }
  }
}

Stephane

相关内容

最新更新