通过 Google Apps Scripts 发布 Google 电子表格

IMT*_*Man 2 google-apps-script google-drive-api

是否可以使用 Google Apps 脚本将 Google 电子表格发布到网络上?现在我必须使用File>手动完成Publish to the web...

我检查了所有 Google Apps 脚本参考和指南,但没有看到任何关于通过 GAS 自动化发布脚本的信息。

Tan*_*ike 6

  • 您想要实现File>Publish to the web...使用 Google Apps 脚本。

如果我的理解是正确的,这个示例脚本怎么样?

使用此脚本时,请在高级 Google 服务中启用 Drive API。

示例脚本:

var spreadsheetId = "###"; // Please set this.
Drive.Revisions.update({published: true, publishedOutsideDomain: true, publishAuto: true}, spreadsheetId, 1);
Run Code Online (Sandbox Code Playgroud)

官方文件:

  • publishAuto:是否会自动重新发布后续修订版。这仅被填充并且只能针对 Google Docs 进行修改。
  • 已发布:此修订版是否已发布。这仅被填充并且只能针对 Google Docs 进行修改。
  • publishOutsideDomain:此修订版是否在域外发布。这仅被填充并且只能针对 Google Docs 进行修改。

笔记:

  • 1创建新电子表格时,电子表格的修订 ID为默认值。并且通过publishAuto,当电子表格更新时,更新的电子表格会自动反映到已发布的电子表格中。
    • 我将它们用于此示例脚本。
    • 如果要修改此设置,请修改脚本。

参考:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

编辑:

关于已发布电子表格的网址,手动发布电子表格时,可以像 那样检索网址https://docs.google.com/spreadsheets/d/e/2PACX-###/pubhtml。在这种情况下,2PACX-###不是电子表格 ID。不幸的是,在当前阶段,API 无法检索到此 URL。Drive API v2 之前已经检索过它publishedLink。但现在,它无法恢复。当 Drive API 从 v2 更新到 v3 时,publishedLink已删除。这就是目前的情况。

但作为一种解决方法,您可以使用电子表格 ID 创建已发布电子表格的 URL。请检查以下网址。

    https://docs.google.com/spreadsheet/pub?key=### spreadsheetId ###
Run Code Online (Sandbox Code Playgroud)

您可以使用上述 URL 访问已发布的电子表格。