如何仅合并特定表格行的两个单元格? (文档、应用程序脚本)

2024-03-22

I am trying to create a table in a Doc file using Google Appsscript. The last row should only consist of one cell: enter image description here

但我能得到的就是这个(最后一行靠左对齐)。

我尝试了不同的事情:

  • 使用 merge() 合并两个单元格会再次生成第二个图像
  • 创建两个表并尝试合并它们会在行之间留下间隙。
  • 更改最后一行的宽度会更改整个第一列的宽度

非常感谢您的帮助。 多谢!

var cells = [
  ['Cell 1', 'Cell 2'],
  ['Cell 1', 'Cell 2'],
  ['Cell 1', 'Cell 2'],
  ['Cell 1', 'Cell 2'],
  ["Only one Cell"]
];
var tableHeader = body.appendTable(cells);

问题和解决方法:

  • 根据我的经验,我曾经有过merge()不能使用合并单元格的方法。我不确定这是一个错误还是当前的规范。现在,当我再次测试相同的情况时,似乎merge()仍不能使用。而且,我也向你证实了同样的结果。我希望这个问题将在未来的更新中得到解决。

但幸运的是,人们已经发现,当使用 Google Docs API 时,可以合并表格单元格。因此,在这个答案中,我想建议使用 Google Docs API 来实现您的目标。当你的放映脚本修改后,下面的修改如何?

修改后的脚本:

在使用此脚本之前,请在高级 Google 服务中启用 Docs API https://developers.google.com/apps-script/guides/services/advanced#enable_advanced_services.

function myFunction() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var id = doc.getId();

  var cells = [ // This is from your script.
    ['Cell 1', 'Cell 2'],
    ['Cell 1', 'Cell 2'],
    ['Cell 1', 'Cell 2'],
    ['Cell 1', 'Cell 2'],
    ["Only one Cell"]
  ];
  var length = cells.length;
  cells[length - 1].push("");
  body.appendTable(cells);
  doc.saveAndClose();

  // Use Google Docs API.
  var obj = Docs.Documents.get(id).body.content;
  var table = obj.reverse().find(({ table }) => table);
  var requests = [{ mergeTableCells: { tableRange: { columnSpan: 2, rowSpan: 1, tableCellLocation: { tableStartLocation: { index: table.startIndex }, rowIndex: cells.length - 1, columnIndex: 0 } } } }];
  Docs.Documents.batchUpdate({ requests }, doc.getId());
}
  • 在这个修改中,首先,在最后一行添加一个空值,并使用以下内容创建一个表:cells。并且,最后一行的单元格由 Google Docs API 合并。

  • 在本例中,为了检索附加表的位置,我使用了 Google Docs API 的“方法:documents.get”。

Testing:

运行此脚本时,将获得以下结果。

参考:

  • 方法:documents.get https://developers.google.com/docs/api/reference/rest/v1/documents/get
  • 方法:documents.batchUpdate https://developers.google.com/docs/api/reference/rest/v1/documents/batchUpdate
  • 合并表格单元格请求 https://developers.google.com/docs/api/reference/rest/v1/documents/request#mergetablecellsrequest
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅合并特定表格行的两个单元格? (文档、应用程序脚本) 的相关文章

随机推荐

  • 将焦点更改回控制台窗口

    我对Windows编程的了解接近于零 但现在我已经制作了一个从 Windows 控制台运行的 Forth 程序 它打开一个原始的图形窗口 问题是我想通过按键来控制程序 但是当程序启动时 焦点没有在控制台窗口上 而是在图形窗口上 如何改变后焦
  • Kubeflow Pipeline 终止通知

    我尝试添加一个逻辑 当管道由于某些错误而终止时 该逻辑将发送松弛通知 我尝试用ExitHandler 但是 似乎ExitHandler不能依赖于任何操作 你有什么好主意吗 我找到了一个使用的解决方案ExitHandler 我在下面发布我的代
  • C11 类型泛型表达式 - 为什么不直接添加函数重载?

    我刚刚读了维基百科的文章C11 http en wikipedia org wiki C11 28C standard revision 29 2011年12月发布的新版本C标准 我看到新增的功能之一是 类型泛型表达式 类型通用表达式使用
  • Python openAL 3D 声音

    我刚刚开始使用 python 正在制作音频操作程序 我正在尝试在我的 python 应用程序中使用 openAL 实现 3D 声音 但我只能让它工作 这是我的 3D 声音代码 from openal loaders import load
  • 无法从 NHibernate.Driver.SQLite20Driver 创建驱动程序

    这是引发异常的代码 public Configuration GetConfiguration var persister SQLiteConfiguration Standard UsingFile Test db ShowSql var
  • 如何设置新语言 IDE

    在工作中 我们使用专有语言 并使用带有简单代码突出显示的 Notepad 进行编程 这真的很烦人 所以我想做的是花一些时间来设置一个文本编辑器或现有的 IDE 来支持我的语言 我在谷歌上搜索了很多 有很多选择 在开始工作之前我想问你什么是最
  • 生成 Play 2 的 javascript 路由器的更简洁的方法

    目前我以相当详细的方式定义我的应用程序的 javascript 路由器 def javascriptRoutes Action implicit request gt import routes javascript Ok Routes j
  • 有没有办法立即检查目录是否正在使用?

    我想使用 Directory Move 移动目录及其所有子目录 不过 在此之前 我想检查该目录及其子目录中的任何文件和子文件是否正在被其他进程使用 然后 在移动之前 我想将目录锁定到其他进程 这样我就可以确保 Directory Move
  • 在 jQuery 对象数组上调用 show

    我有一个关于性能的小问题jQuery show 这个问题出现在 IE8 中 可能还有以下版本 但 IE8 是我感兴趣的 我有一个 jQuery 对象数组 我们称之为elements 我想向他们展示 所以我这样做了 for var i ele
  • WebClient.DownloadFileTaskAsync() 实际上永远不会超时吗?

    在异步之前的日子里 人们想知道如何设置超时WebClient答案很简单 就是扩展基类并覆盖GetWebRequest 并在那里设置超时 protected override WebRequest GetWebRequest Uri addr
  • 在 Excel VBA 宏中使用 Google 翻译

    各位 多年来 我一直在我的 Excel 宏之一中使用以下函数来帮助我将照片标题从英语撰写为法语 今天上午它开始抛出一个错误 该错误指向 Send下面代码中的命令 Public Function getGoogleTranslation st
  • 从 MySQL 表中选择值是数组的行?

    我有一个包含 ID 列表的表 我使用查询来选择它 然后将其作为数组获取 我知道如何执行此操作 然后我想从另一个表中选择行 其中 ID 位于之前获取的数组中 我该怎么做 提前致谢 你很可能想做一个WHERE field IN 类型查询 它本质
  • neo4j中如何删除多个节点

    如何在neo4j中删除多个节点 不是全部 我有这个查询MATCH n where n name IS NULL delete n 它返回多个节点 我想删除所有这些节点 所有节点 这些节点是错误创建的 这就是为什么变成空 我面临的错误是 ja
  • Rails 模型范围内的关联数据

    我有一个名为Post 博客文章 和一个名为Category 每个帖子belongs to一个类别 每个类别都有一个名为retainer指定帖子 过期 之前的时间量 例如movies category retainer 30 days 我想做
  • 在 Python 中迭代嵌套字典

    我的字典的结构如下 stockData AAPL beta 1 01833975315094 company name Apple dividend 1 9341673320912078 total 300 GOOG beta 1 0183
  • 在 Verilog 设计中产生时钟故障

    我正在使用 Verilog 设计芯片 我有一个 3 位计数器 我希望当计数器处于第 8 次循环时 应该有一个时钟故障 之后就可以正常工作了 在 Verilog 设计中产生时钟故障的可能方法是什么 在时钟信号上注入毛刺的一种方法是使用forc
  • 要复制到 Windows 共享 (SMB) 的 Ant 任务

    是否有 ant 任务 类似于 ftp 或 scp 任务 允许我将一组文件复制到 Windows smb 共享 编辑 我必须为此使用 jcifs 创建一个任务 如果有人需要 这里是代码 取决于 jcifs 和 apache ioutils i
  • 使用内置 std::sort 函数对 C++ 中的二维数组进行排序

    我有一个形式的矩阵pMat M N where M and N是可变的 因此是来自用户的输入 我想使用内置的对二维数组的元素进行排序std sort功能 例如 考虑以下数组 5 9 6 8 1 3 7 2 4 它应该输出为 1 2 3 4
  • 用于上采样的 PCM 算法

    我有 8k16 位 pcm 音频 我想将其上采样到 16k16 位 我必须手动执行此操作 有人可以告诉我线性插值的算法吗 我应该在每两个字节之间插入吗 另外 当我上采样时 我必须对 wav 标头进行更改 我应该更改什么 正如其他人提到的 线
  • 如何仅合并特定表格行的两个单元格? (文档、应用程序脚本)

    I am trying to create a table in a Doc file using Google Appsscript The last row should only consist of one cell 但我能得到的就