我要使用 Google AppScript 为 Google 表格创建一个自定义函数。我有一组数据,我的自定义函数将汇总这些数据并将汇总显示在另一张工作表上。
我能够为摘要创建我的 on 算法并返回如下范围:
当前
现在我明白 Appscript 函数返回一个二维数组,但我的问题是如何使用 Appscript 合并一些单元格?什么时候有一个月?像这样:
目标
对于上面的例子, 我将从我的自定义函数返回的范围将是
[
['January', ''],
['Project 1', '10 Hours'],
['Project 2', '20 Hours'],
['Project 3', '30 Hours'],
['Project 4', '40 Hours'],
['Project 5', '50 Hours'],
['February', ''],
['Project 1', '10 Hours'],
['Project 2', '20 Hours'],
['Project 3', '30 Hours'],
['Project 4', '40 Hours'],
['Project 5', '50 Hours']
]
那么,我如何让 AppScript 告诉 GooglSheets ['January', ''],
和 ['February', ''],
是单元格合并?
如果 Excel 中有一个函数可以做到这一点,我也愿意接受其他方法。 :)
谢谢
最佳答案
此示例从 Sheet1 复制表格至 Sheet2到 3 行和 4 列。
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheets()[0];
var data = sheet1.getDataRange().getValues();
var mergeRows = [];
for(var i = 0; i < data.length; i++) {
if (data[i][1] == "") {
mergeRows.push(i);
}
}
var startRow = 3;
var startCol = 4;
var sheet2 = ss.getSheets()[1];
sheet2.getRange(startRow, startCol, data.length, data[0].length).setValues(data);
for(var i = 0; i < mergeRows.length; i++) {
sheet2.getRange(startRow + mergeRows[i], startCol, 1, 2).merge().setHorizontalAlignment('center');
}
}
关于javascript - 在 Google Apps 脚本中返回具有合并列的某些行的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214614/