使用应用程序脚本编辑 table 的文档边框

Edit table's border of doc with apps script

我需要将 table 的水平边框设置为 2.25pt 宽度,将垂直边框设置为 0 pt,就像这个示例 https://docs.google.com/document/d/11jzzFgRL9BKiqEycnAkyIvNq726TV5EkdywkNB76X28/edit

setBorderWidth(width) 方法为所有边框设置相同的宽度

var doc = DocumentApp.getActiveDocument().getBody();
var cells = [
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
];

var tab = doc.insertTable(index, cells);
tab.setBorderColor('#ffffff');
setBorderWidth(2.25);

问题和解决方法:

遗憾的是,Google文档服务(DocumentApp)似乎不能直接只设置垂直边框的宽度,而可以设置垂直和水平边框的宽度。但是,幸运的是,当使用 Google Docs API 时,您的目标就可以实现了。

在此回答中,作为解决方法,我想提出使用 Docs 的方法 API。

示例脚本:

当你的展示脚本使用文档API修改后,变成如下。

在您使用此脚本之前,please enable Docs API at Advanced Google services

function myFunction() {
  var index = 1; // Please set the index you want to put the table.

  // 1. Create a table using Document service.
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var cells = [
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
    ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'],
  ];
  var tab = body.insertTable(index, cells);
  tab.setBorderColor('#ffffff').setBorderWidth(2.25);
  doc.saveAndClose();

  // 2. Set the width of vertical borders using Docs API.
  var requests = [{ updateTableCellStyle: { tableCellStyle: { borderRight: { dashStyle: "SOLID", width: { magnitude: 0, unit: "PT" }, color: { color: { rgbColor: { red: 0 } } } }, borderLeft: { dashStyle: "SOLID", width: { magnitude: 0, unit: "PT" }, color: { color: { rgbColor: { red: 0 } } } } }, tableStartLocation: { index: index + 1 }, fields: "borderRight,borderLeft" } }];
  Docs.Documents.batchUpdate({ requests }, doc.getId());
}
  • 当此脚本为 运行 时,将使用文档服务放置 table。当时,边框的宽度是 2.25 pt。并且,使用 Docs API 将垂直边框的宽度设置为 0。这样,您的目标就可以实现了。

参考文献: