繁体   English   中英

用于获取我在工作表上的一个文件中输入的信息的代码并将其设为数组,以便我可以将其传输到另一张工作表(不同的 ID)

[英]Code for taking information I input in one file on sheets and makes it an array so that I can transfer it to another sheet (different ID)

我是 Javascript 和 Google Script 的新手,所以请多多包涵。 下面是我写的代码,但它没有传输信息。

在我的代码中,我试图将一张工作表中的信息放入一个数组中,然后将其传输到另一个电子表格,其中包含包含在特定月份所做更改的选项卡的工作表。 我不需要更改任何信息,我只需要移动它。

function infoTransfer() 
{
  var actveSheet = SpreadsheetApp.getActiveSpreadsheet();
  var byName = actveSheet.getSheetByName("New Item Input Sheet");
  var infoRange = byName.getDataRange();
  var valueRange = infoRange.getValues();
  var infoTable = [];                                                        
  for(var i = 1; i < infoRange.getNumRows(); i++)
  {
   var e = [];
   for(var j = 2; j < infoRange.getRow(i).getNumCells(); j++)
    e.push(infoRange.getCell(i,j).editAsText().getText());
   }
   infoTable.push(e);

  var otherSheet = SpreadsheetApp.openById('1QYEwvbPWIZ1sVuOhJ5PZK2KjCQ2waUIBuVX169L-SZU');
  var sh = otherSheet.getSheetId('1505823542')

  sh.getRange(2,1,infoTable.length,infoTable[0].length).setValues(infoTable);  
}

回答:

您可以将每一列作为一个数组并将其复制到新的电子表格中。

代码:

function copyData() {
  var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
  var byName = activeSheet.getSheetByName("New Item Input Sheet");
  var noOfColumns = byName.getDataRange().getNumColumns();
  var noOfRows = byName.getDataRange().getNumRows();
  var arrayOfColumns = [];

  for (var i = 0; i < noOfColumns; i++) {
    arrayOfColumns[i] = byName.getRange(1, i + 1, noOfRows, 1);
  }
  var destinationSheet = SpreadsheetApp.openById('destination-spreadsheet-id');
  var sheet = destinationSheet.getSheetByName('sheet-name');

  for (var i = 0; i < noOfColumns; i++) {
    sheet.getRange(1, i + 1, noOfRows, 1).setValues(arrayOfColumns[i].getValues());
  }
}

我希望这对你有帮助!

参考:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM