使用 Apps 脚本合并单元格 Google 个工作表

Merge cells Google sheets using Apps Script

我正在尝试创建一个脚本,当脚本为 运行 时,它将在 Google 工作表中组合 3 列,这些列有 headers:

名字中间名姓氏

我的目标是脚本会创建一个新列,如果有任何多余的内容,则将这些列与空格一起删除。

谢谢!

您可以使用公式:

=TEXTJOIN(" ",TRUE,A1,B1,C1)

它连接单元格 A1、B1、C1 中的文本(不过没有 trim 空格)

如果你需要这里的脚本:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var [header, ...data] = sheet.getDataRange().getValues();

  for (let row in data) {
    var col1 = data[row][0].trim();           // First Name
    var col2 = data[row][1].trim();           // Middle Name
    var col3 = data[row][2].trim();           // Last Name
    var col4 = [col1, col2, col3].join(' ');  // combined full name
    data[row] = [col1, col2, col3, col4];
  }

  var table = [header, ...data];
  sheet.getRange(1,1,table.length,table[0].length).setValues(table);
}

之前:

之后:

同一算法的另一种表示法,以防万一:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var [header, ...data] = sheet.getDataRange().getValues();
  
  var table = [header];

  while (data.length) {
    var row = data.shift().map(x => x.trim()).slice(0,-1);
    table.push([...row, row.join(' ')]);
  }
 
  sheet.getRange(1,1,table.length,table[0].length).setValues(table);
}