在新电子表格中将电子表格中的随机列导入订单

时间:2016-02-17 14:01:08

标签: performance import spreadsheet

我尝试编写一个脚本,将电子表格的特定列导入另一个电子表格。但是,目前我分别在每一栏写作/阅读,这需要相当长的时间。我这样做是因为我不需要原始工作表中的所有列到新工作表中。我想知道我的当前脚本是否可以更改为一个脚本,您曾经阅读过必要的列并将它们全部写在一起?我试图搜索相同但列的不同顺序以及对特定列的需求使其变得困难。

我希望有人能帮助我找到答案。

提前致谢, 添

    function getPDdataupper() {
 var sheet = SpreadsheetApp.getActive().getSheetByName('SPR');

 var Num = Browser.inputBox("What URL are do you want to copy from?");
 var ssraw = SpreadsheetApp.openById(Num);//put Address in here*****

var sheetraw = ssraw.getSheetByName("SPR");

 sheet.getRange(10,11,(sheet.getLastRow())-9,3).clearContent();
  sheet.getRange(10,1,(sheet.getLastRow())-9,3).clearContent();

  //ADJUST ROW
  var lastrow = sheet.getLastRow()-10;
  var lastrowcopiedsheet = sheetraw.getLastRow()-10;
  var diff = lastrowcopiedsheet - lastrow;

if(diff > 0){sheet.insertRowsAfter(11,diff);}
  if(diff < 0){sheet.deleteRows(20,(diff*-1)); }

  sheet.getRange(11,1,(sheet.getLastRow())-11,33).clearContent();

  var values = sheetraw.getRange(1,1,5,1).getValues();
  sheet.getRange(1,1,5,1).setValues(values);

 var values = sheetraw.getRange(10,3,sheetraw.getLastRow()-9,1).getValues();
  sheet.getRange(10,2,(sheet.getLastRow()-9),1).setValues(values);

  var values = sheetraw.getRange(10,38,sheetraw.getLastRow()-9,2).getValues();
  sheet.getRange(10,3,(sheet.getLastRow()-9),2).setValues(values);

  var values = sheetraw.getRange(10,43,sheetraw.getLastRow()-9,1).getValues();
  sheet.getRange(10,6,(sheet.getLastRow()-9),1).setValues(values);

  var values = sheetraw.getRange(10,44,sheetraw.getLastRow()-9,1).getValues();
  sheet.getRange(10,5,(sheet.getLastRow()-9),1).setValues(values);

  var values = sheetraw.getRange(10,6,sheetraw.getLastRow()-9,1).getValues();
  sheet.getRange(10,7,(sheet.getLastRow()-9),1).setValues(values);

  var values = sheetraw.getRange(10,54,sheetraw.getLastRow()-9,2).getValues();
  sheet.getRange(10,8,(sheet.getLastRow()-9),2).setValues(values);

  var values = sheetraw.getRange(10,58,sheetraw.getLastRow()-9,1).getValues();
  sheet.getRange(10,10,(sheet.getLastRow()-9),1).setValues(values);

  var values = sheetraw.getRange(10,14,sheetraw.getLastRow()-9,19).getValues();
  sheet.getRange(10,14,(sheet.getLastRow()-9),19).setValues(values);

   var values = sheetraw.getRange(10,51,sheetraw.getLastRow()-9,1).getValues();
  sheet.getRange(10,33,(sheet.getLastRow()-9),1).setValues(values);

  var values = sheetraw.getRange(10,62,sheetraw.getLastRow()-9,1).getValues();
  sheet.getRange(10,34,(sheet.getLastRow()-9),1).setValues(values);

  var values = sheetraw.getRange(10,4,sheetraw.getLastRow()-9,1).getValues();
  sheet.getRange(10,35,(sheet.getLastRow()-9),1).setValues(values);

1 个答案:

答案 0 :(得分:0)

我现在已经自己整理了。对于正在寻找相同内容的人,请参阅下面的代码。如果其他人想到更好的东西,请随时修改。

function getPDdataupper() {
 var sheet = SpreadsheetApp.getActive().getSheetByName('SPR');

 var folder= DriveApp.getFolderById('FolderID');
 var files = folder.getFilesByType(MimeType.GOOGLE_SHEETS);
 while (files.hasNext()) {
   var ssraw = SpreadsheetApp.open(files.next());
 //var ssraw = SpreadsheetApp.open(Num); 
 }
    sheet.getRange(11,1,(sheet.getLastRow())-10,53).clearContent();
var sheetraw = ssraw.getSheetByName("SPR");

 sheet.getRange(10,11,(sheet.getLastRow())-9,3).clearContent();
  sheet.getRange(10,1,(sheet.getLastRow())-9,3).clearContent();

  //ADJUST ROW
  var lastrow = sheet.getLastRow()-10;
  var lastrowcopiedsheet = sheetraw.getLastRow()-10;
  var diff = lastrowcopiedsheet - lastrow;

if(diff > 0){sheet.insertRowsAfter(11,diff);}
  if(diff < 0){sheet.deleteRows(20,(diff*-1)); }


  //var values = sheetraw.getRange(10,("C10:C,AL10:AM,AQ10:AR,F10:F,BB10:BC,BF10:BF"),(sheetraw.getLastRow()-9),53).getValues();
  //sheet.getRange(10,2,(sheet.getLastRow()-9),(sheet.getLastColumn()-1)).setValues(values);

        var data = sheetraw.getDataRange().getValues();{
        var target = new Array();
        for(n=0;n<data.length;++n){
            target.push( [[data[n][2]], [data[n][37]], [data[n][38]], [data[n][43]], [data[n][42]], [data[n][5]], [data[n][53]], [data[n][54]], [data[n][57]]] );

           }

        sheet.getRange(1,2,target.length,target[0].length).setValues(target);

}