【问题标题】:DocumentApp Tables: How do I merge cells in a column? [w/ workaround]DocumentApp 表格:如何合并列中的单元格? [w/解决方法]
【发布时间】:2015-07-29 22:31:57
【问题描述】:

我正在尝试使用 GAS 构建一个文档,该文档将包含一个表格,其中第一列中有一个单元格,第二列中有多个单元格。 See an example here.

我知道表格的结构是表格 > 行 > 单元格,merge() 方法只合并同级单元格,即同一行中的单元格。

有没有办法合并两个兄弟行中的文档表格单元格,或者完成类似的效果?

【问题讨论】:

  • 查看了 Apps 脚本 Table 类中可能的方法。我认为没有办法直接使用 Apps 脚本来做到这一点。您可以使用应用程序脚本here 提交功能请求以实现此功能。希望有帮助!
  • @KRR 感谢您的调查!我一定会提交功能请求。我添加了我发现的解决方法,因此希望以后有人会从中受益。

标签: google-apps-script google-docs


【解决方案1】:

解决方法

您可以从在 Google 文档应用中格式化的现有 Google 文档中复制表格。这将使用以下代码保留合并的列和所有格式:

function copyTable() {
  var sourceDoc = DocumentApp.openById('id').getBody();
  //This is the orginal table containing merged cells:
  var sourceTable = sourceDoc.getTables()[0];

  var targetDoc = DocumentApp.openById('id').getBody().clear();
  var copiedTable = targetDoc.appendTable(sourceTable.copy());
}

限制

似乎合并的列格式是在 Table 元素中编码的,而不是在 Row 或 Cell 元素中。 Table 仅在复制 Table 元素时保持其格式。

将 Rows 复制在一起可以保持列合并,但如果您之前设置了 setWidth 值,则会丢失该值。复制行或单元格时似乎丢失了一些格式。在合并中向表中添加额外的行会破坏合并。

我发现你可以编辑表格的内容,比如Cell.setWidth(),当然你也可以编辑文本。您只是不能使用此方法添加行和单元格,并保持列合并。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 2019-09-02
    相关资源
    最近更新 更多