将数据从一个工作表复制到另一个电子表格不包括特定列

时间:2016-04-01 02:58:19

标签: google-apps-script google-sheets

我找到了该脚本并成功将值从主工作表复制到另一个名为" Cooked"的工作表中。麻烦的是它从主表复制所有数据,我只想复制特定列的值,如A,C,D,F列(B& E除外)和自动排列到目标表。

我的编码时间有限,但我可以学习(复制)从中了解它:)

function copyTo(source,destination) {
  var sourceSheet = source.getSheet();
  var destSheet = destination.getSheet();
  var sourceData = source.getValues();
  var dest = destSheet.getRange(
    destination.getRow(),        // Top row of destination
    destination.getColumn(),     // left col of destination
    sourceData.length,           // # rows in source
    sourceData[0].length);       // # cols in source (elements in first row)
  dest.setValues(sourceData);
  SpreadsheetApp.flush();
}

function copySheet() {
   var sourceSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Total");
   var destSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cooked");

  var source = sourceSheet.getRange("A:N");
  var destination  = destSheet.getRange("A:N");
  copyTo(source,destination );
}

2 个答案:

答案 0 :(得分:2)

copySheet功能中,您可以看到Range A:N进行复制。如果更改此部件,则可以复制所需的范围。

当你想要复制一组不连续的列时,我会建议这样的东西。

function copySheet() {
  var sourceSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Total");
  var destSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cooked");

  var columns_to_be_copied = ['A', 'C', 'D', 'F'];
  var columns_to_be_pasted = ['A', 'B', 'C', 'D'];

  for (column in columns_to_be_copied) {

    var copy_range_string = columns_to_be_copied[column] + ':' + columns_to_be_copied[column];
    var paste_range_string = columns_to_be_pasted[column] + ':' + columns_to_be_pasted[column];

    var source = sourceSheet.getRange(copy_range_string);
    var destination  = destSheet.getRange(paste_range_string);
    copyTo(source,destination );
  }
}

我们将要复制的所有列存储在变量中,遍历它们并生成共振峰copy_range_stringspaste_range_strings等的A:AC:C。然后调用copyTo方法在这些范围内。现在,您可以修改columns_to_be_copiedcolumns_to_be_pasted以对列应该转到哪一列的数据进行更改

答案 1 :(得分:-1)

formGroup