使用 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);
}
我正在尝试创建一个脚本,当脚本为 运行 时,它将在 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);
}