Google工作表-将行从多个工作表复制到一个摘要工作表中

问题描述 投票:0回答:1

我正在尝试维护单独的表格,这些表格汇总成一个Google电子表格中的一个摘要表格,同时保持格式。我有一个代码,可以将单独工作表的内容复制到摘要中,但是第二个工作表覆盖了摘要工作表中的第一个工作表。这就是我所拥有的-

function importTable2() {
  // Source 1
  var sourceSheet1 = SpreadsheetApp.openById("ID").getSheetByName("1");
  var sourceRange1 = sourceSheet1.getDataRange();

  // Source 2
  var sourceSheet2 = SpreadsheetApp.openById("ID").getSheetByName("2");
  var sourceRange2 = sourceSheet2.getDataRange();  

  // Destination
  var destSS = SpreadsheetApp.openById("ID");
  var destSheet = destSS.getSheetByName("Summary");
  var destRange = destSheet.getDataRange();
  destSheet.clear();

  // Copy 1
  var copiedsheet = sourceRange1.getSheet().copyTo(destSS);
  copiedsheet.getRange(sourceRange1.getA1Notation()).copyTo(destRange);
  copiedsheet.getRange(sourceRange1.getA1Notation()).copyTo(destRange, SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS, false);
  destSS.deleteSheet(copiedsheet);
  
    // Copy 2
  var copiedsheet2 = sourceRange2.getSheet().copyTo(destSS);
  copiedsheet2.getRange(sourceRange2.getA1Notation()).copyTo(destRange);
  copiedsheet2.getRange(sourceRange2.getA1Notation()).copyTo(destRange, SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS, false);
  destSS.deleteSheet(copiedsheet2);

}

我认为这是因为我的目标范围是相同的,但是我似乎无法弄清楚如何获得第二个目标范围(针对工作表2的数据),该范围将低于初始目标范围(根据工作表1的数据)因为工作表1中的数据今天有10行,明天有20行。

关于如何将源2放入源1数据下的目标表的任何想法?

google-apps-script google-sheets
1个回答
0
投票

尝试在脚本的“ // Copy 2”部分中重置destRange的值:

    // Copy 2
  var copiedsheet2 = sourceSheet2.copyTo(destSS);
  destRange = destSheet.getRange(destSheet.getLastRow() + 1, 1, sourceRange2.getLastRow(), sourceRange2.getLastColumn());
  copiedsheet2.getRange(sourceRange2.getA1Notation()).copyTo(destRange);
  copiedsheet2.getRange(sourceRange2.getA1Notation()).copyTo(destRange, SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS, false);
  destSS.deleteSheet(copiedsheet2);
© www.soinside.com 2019 - 2024. All rights reserved.