google-apps-script - 如何对来自 Google Drive 的文件使用 importXML 函数?

标签 google-apps-script google-sheets web-applications

我在 Drive 中存储了一个 .xml 文件,我想使用 importXML() 提取信息。但是,当它是来自云端硬盘的可共享链接时,它不起作用。

最佳答案

我认为有两种模式。

1. 直接从 Google Drive 读取 XML 文件

在这种情况下,在电子表格上使用的所有 XML 文件都必须作为 ANYONE_WITH_LINK 和 VIEW 共享。共享文件的 URL 是 https://drive.google.com/uc?id=### file id ###&export=download .所以公式如下。

=importXML("https://drive.google.com/uc?id=### file id ###&export=download","### XPath query ###")

2. 使用 Web Apps 间接读取 XML 文件

在这种情况下,不需要共享在电子表格上使用的 XML 文件,因为部署了 Web 应用程序。但是在这种情况下使用了 GAS。该方法的安装如下。

1. 将以下脚本复制并粘贴到您的脚本编辑器中。
function doGet(e) {
  var xml = DriveApp.getFileById(e.parameters.id).getBlob().getDataAsString();
  return ContentService.createTextOutput(xml).setMimeType(ContentService.MimeType.XML);
}

2. Deploy Web Apps
  • 在脚本编辑器上
  • 文件
  • -> 管理版本
  • -> 保存新版本
  • 发布
  • -> 部署为 Web 应用程序
  • -> 在 Execute the app as,选择 “您的帐户”
  • -> 在谁有权访问该应用程序,选择 “任何人,甚至匿名”
  • -> 点击“部署”
  • -> 复制 “当前网络应用程序 URL”
  • -> 点击“确定”

  • 已复制 当前 Web 应用程序 URL 用于 importXML() .所以电子表格上的公式如下。
    =importXML("https://script.google.com/macros/s/#####/exec?id=### file id ###","### XPath query ###")
    

    如果这些对你没有用,我很抱歉。

    关于google-apps-script - 如何对来自 Google Drive 的文件使用 importXML 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988417/

    相关文章:

    google-apps-script - 更改字体大小,但仅适用于某些单元格

    google-apps-script - 如何在函数调用之间放置 Utilities.sleep()?

    Excel 不返回与 Google 表格相同的值

    php - 需要基于 Web 的 FTP 帮助

    java - Web 检索到 clojure 上的延迟字符串错误

    java - 如何部署 webapp 并创建其资源

    javascript - 修改谷歌表格脚本以复制值而不是公式

    api - 使用 google 应用脚本进行 Shopify 身份验证 OAuthConfig 类

    javascript - 如何将实时 Google 表格数据嵌入到 Google 协作平台中

    javascript - 电子表格应用程序 : getRange and setValues