是否有一种简单的格式可以通过脚本移动数据列?

Is there an easy format to move columns of data by script?

我想将几行从一行 sheet 移动到另一行,但我正在查看的所有脚本都没有解决这个问题。

例如,我想将 Sheet1 上的 A、B、C 列移动到 Sheet2 上的 G、I、L 列。

这能做到吗?我对脚本编写很陌生,没有我在做什么的例子。

谢谢。

这可以用简单的代码完成:

function moveCols() {
var ss = SpreadsheetApp.getActive();
var sourceSheet = ss.getSheetByName('Sheet1');
var destSheet = ss.getSheetByName('Sheet2');
sourceSheet.getRange('A:A').moveTo(destSheet.getRange('G1'))
sourceSheet.getRange('B:B').moveTo(destSheet.getRange('I1'))
sourceSheet.getRange('C:C').moveTo(destSheet.getRange('L1'))
}

如果您只想复制数据(而不是移动数据),请将 .moveTo() 方法更改为 copyTo()。

编辑:如果您需要将列移动到另一个电子表格,请尝试:

function moveCols() {
var sourceSheet = SpreadsheetApp.getActive()
    .getSheetByName('Sheet1'),
    destSheet = SpreadsheetApp.openById('ID_OF_DESTINATION_SHEET')
        .getSheetByName('Sheet2'),
    sourceRanges = ['A:A', 'B:B', 'C:C'],
    targetRanges = [7, 9, 12]
        .map(function (r, i) {
            var sr = sourceSheet.getRange(sourceRanges[i]),
                val = sr.getValues();
            destSheet.getRange(1, r, val.length, val[0].length)
                .setValues(val);
            sr.clear()
        });
}