gpt4 book ai didi

javascript - 使用应用程序脚本在谷歌电子表格中拆分(分开)合并表格单元格

转载 作者:行者123 更新时间:2023-11-29 17:18:00 26 4
gpt4 key购买 nike

在操作(复制/移动)包含合并单元格的范围时,我总是收到错误消息“您的粘贴与合并单元格重叠。请取消合并单元格,然后重试”。但是,当尝试使用 Range#breakApart 取消合并范围内的单元格时,我收到另一个错误:“所选单元格无法合并。”,这更加令人困惑,因为我没有尝试合并任何东西,我只是想把细胞分开。

最佳答案

事实证明,breakApart 只有在调用它的范围包含所有合并的单元格 时才有效,而不仅仅是合并区域的一部分。

这不会太糟糕。一旦您意识到 API 中无法获取合并单元格的范围,问题就开始了。所以解决这个问题的最好方法(我目前发现的)就是轻轻地扩大你的范围,直到没有错误发生:

var breakRange = myRange;
for(;;) {
try {
breakRange.breakApart();
break;
} catch(e) {
breakRange = mySheet.getRange(
breakRange.getRowIndex(),
breakRange.getColumnIndex(),
Math.min(
breakRange.getHeight()+5,
mySheet.getMaxRows()-breakRange.getRowIndex()+1
),
Math.min(
breakRange.getWidth()+5,
mySheet.getMaxColumns()-breakRange.getColumnIndex()+1
)
);
}
}

(我添加了五行/列而不是一列,因为获取范围似乎是一个相当昂贵的过程)。只要您在扩展搜索区域时没有添加额外的合并单元格,这种方法就非常有效。

当谈到电子表格中的合并单元格时,Google Apps 脚本 API 至少在以下方面存在根本性问题:

  1. 无法在工作表/范围中获取合并单元格范围的数组。
  2. 应该有一种方法可以查看哪些单元格已拆分(breakApart 仅返回“用于链接”的原始范围)。这使得无法拆分合并,然后让每个单元格都包含原始合并单元格的内容。
  3. 尝试在仅包含合并单元格一部分的范围内使用 breakApart 时,仍应拆分整个合并,而不是抛出异常。

总而言之,目前的 API 仅适用于脚本作者自己可以完全控制其布局和使用的电子表格。

关于javascript - 使用应用程序脚本在谷歌电子表格中拆分(分开)合并表格单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15441604/

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