gpt4 book ai didi

javascript - 用合并范围的左上角单元格数据填充范围内的空合并单元格

转载 作者:行者123 更新时间:2023-12-05 02:49:04 25 4
gpt4 key购买 nike

+--------+-----+-----+
| A | D | F |
+--+--+--+--+--+--+--+
| | | | | | | |
+--+--+--+--+--+--+--+

从值合并范围数组:

[[A, , ], [D, ], [F, ]]

对此:
[[A, A, A], [D, D], [F, F]]

但看起来这段代码对我不起作用。问题出在哪里或者有更好的解决方案吗?

let SpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
let Sheet = SpreadSheet.getSheets()[0];
let CategoryRange = Sheet.getRange(1,1,1,Sheet.getLastColumn());
let CategoryMergedRanges = CategoryRange.getMergedRanges();
let CategoryData = CategoryRange.getValues();


for (let i = 0; i < CategoryMergedRanges.length; i++) {
let CategoryName = "";
for (let j = CategoryMergedRanges[i].getColumn(); j < CategoryMergedRanges[i].getColumn() + CategoryMergedRanges[i].getNumColumns(); j++) {
if (CategoryData[0][j - 1].toString() != "") {
CategoryName = CategoryData[0][i - 1];
}
}
for (let j = CategoryMergedRanges[i].getColumn(); j < CategoryMergedRanges[i].getColumn() + CategoryMergedRanges[i].getNumColumns(); j++) {
CategoryData[0][i - 1] = CategoryName;
}
}
Logger.log(CategoryData);

最佳答案

说明:

  • 根据您的解释:ADF合并为32 2细胞数分别。

意味着合并的范围将是:

[[A, , ], [D, ], [F, ]]

假设:

  • 在单元格 A1 中将 A1:C1 与值 A 合并
  • 合并 D1:E1 与单元格 D1 中的值 D
  • 合并 F1:G1 与单元格 F1 中的值 F

为了使用每个数组的第一个值填充空单元格,您可以使用 fill()方法。

以下脚本将在屏幕截图中为您提供结果。


解决方案:

function myFunction() {

let SpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
let Sheet = SpreadSheet.getSheets()[0];
let CategoryRange = Sheet.getRange(1,1,1,Sheet.getMaxColumns());
let CategoryMergedRanges = CategoryRange.getMergedRanges();
let CategoryData = CategoryRange.getValues();

fAr = [];

CategoryMergedRanges.forEach(cmr=>
{
let tempA=cmr.getValues().flat();
fAr.push(tempA.fill(tempA[0],1));
}
);

let ffAr = [fAr.flat()];
Sheet.getRange(2,1,1,ffAr[0].length).setValues(ffAr);
}

注意:

fAr 返回 [[A, A, A], [D, D], [F, F]] 这应该是您想要的格式。

ffAr 返回 [[A, A, A, D, D, F, F]] 这是我用来将值设置回工作表 (可选)。

example

关于javascript - 用合并范围的左上角单元格数据填充范围内的空合并单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64169895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com