如何使用 Google Apps 脚本更改 Google 文档表格特定边框的颜色?

问题描述 投票:0回答:2

我在 Google Docs 文档中有几个表格,所有表格都只有一个单元格,并且只有左边框可见。我通过将彼此边框宽度设置为 0 来实现这一点(手动)。我的目标是更改左边框的颜色并保持其他边框不可见(我不关心如何实现,所以如果有办法实现这一点只需为它们设置颜色就可以了,但我还没有找到更改单个边框颜色的方法,所以我必须全部更改它们(并将不需要的宽度设置为 0))。

这是一张图片来澄清我的意思(第一个表格是现在的表格,第二个是我想要将其更改为的表格)

我尝试过以下方法:

tables[i].setBorderColor(myNewColor)

不幸的是,此方法(和tables[i].setAttributes())仅在左边框宽度为1px时才有效。然而,在我的文档中,左边框的宽度为 2.25,因此由于某种原因,代码不会更改边框颜色,因为它没有标准宽度。 有没有什么方法可以在不改变宽度的情况下改变左边框颜色,同时保持其他边框几乎不可见?

javascript google-apps-script google-docs google-docs-api
2个回答
0
投票

我相信您的目标如下。

  • 在您的 Google 文档中,表格只有一个单元格。并且,您只想保留表格的左边框。
  • 您想使用 Google Apps 脚本来实现此目的。

不幸的是,在现阶段,似乎每个边框都无法通过 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 文档中的第一个表格仅保留左边框,并且左边框的颜色更改为红色,如下所示。

enter image description here

注:

  • 这是一个简单的示例脚本。请根据您的实际情况进行修改。

参考资料:


0
投票

做工完美 比 GPT 提案更好 非常感谢

© www.soinside.com 2019 - 2024. All rights reserved.