使用应用程序脚本编辑 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
。这样,您的目标就可以实现了。
参考文献:
我需要将 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
。这样,您的目标就可以实现了。