我在 Google Docs 文档中有几个表格,所有表格都只有一个单元格,并且只有左边框可见。我通过将彼此边框宽度设置为 0 来实现这一点(手动)。我的目标是更改左边框的颜色并保持其他边框不可见(我不关心如何实现,所以如果有办法实现这一点只需为它们设置颜色就可以了,但我还没有找到更改单个边框颜色的方法,所以我必须全部更改它们(并将不需要的宽度设置为 0))。
这是一张图片来澄清我的意思(第一个表格是现在的表格,第二个是我想要将其更改为的表格)
我尝试过以下方法:
tables[i].setBorderColor(myNewColor)
不幸的是,此方法(和tables[i].setAttributes())仅在左边框宽度为1px时才有效。然而,在我的文档中,左边框的宽度为 2.25,因此由于某种原因,代码不会更改边框颜色,因为它没有标准宽度。 有没有什么方法可以在不改变宽度的情况下改变左边框颜色,同时保持其他边框几乎不可见?
我相信您的目标如下。
不幸的是,在现阶段,似乎每个边框都无法通过 Google 文档服务(DocumentApp)进行管理。但幸运的是,当使用 Google Docs API 时,这是可以实现的。在这个答案中,我想提出一个使用 Google Docs API 的示例脚本。示例脚本如下。
请将以下脚本复制并粘贴到 Google 文档的脚本编辑器中。在使用此脚本之前,请在高级 Google 服务中启用 Google Docs API。
function myFunction() {
const doc = DocumentApp.getActiveDocument();
const documentId = doc.getId();
const body = doc.getBody();
const table = body.getTables()[0]; // Here, the 1st table is used.
const index = body.getChildIndex(table);
const tableStart = Docs.Documents.get(documentId).body.content[index + 1].startIndex;
const borders = ["borderTop", "borderBottom", "borderLeft", "borderRight"];
const resource = {
requests: [
{
updateTableCellStyle: {
tableStartLocation: { index: tableStart },
tableCellStyle: borders.reduce((o, e) => (o[e] = { width: { magnitude: 0, unit: "PT" }, dashStyle: "SOLID", color: { color: { rgbColor: { blue: 0 } } } }, o), {}),
fields: borders.join(",")
}
},
{
updateTableCellStyle: {
tableRange: { tableCellLocation: { tableStartLocation: { index: tableStart }, rowIndex: 0, columnIndex: 0 }, rowSpan: table.getNumRows(), columnSpan: 1 },
tableCellStyle: { borderLeft: { dashStyle: "SOLID", width: { magnitude: 2.25, unit: "PT" }, color: { color: { rgbColor: { red: 1 } } } } },
fields: "borderLeft"
}
}
]
};
Docs.Documents.batchUpdate(resource, documentId);
}
运行此脚本时,Google 文档中的第一个表格仅保留左边框,并且左边框的颜色更改为红色,如下所示。
做工完美 比 GPT 提案更好 非常感谢