如何对来自Google云端硬盘的文件使用importXML函数?

XY6*_*XY6 4 google-sheets

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

Tan*_*ike 7

我认为有2种模式。

1.从Google云端硬盘直接读取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 ###")
Run Code Online (Sandbox Code Playgroud)

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

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

1.将以下脚本复制并粘贴到脚本编辑器中。

function doGet(e) {
  var xml = DriveApp.getFileById(e.parameters.id).getBlob().getDataAsString();
  return ContentService.createTextOutput(xml).setMimeType(ContentService.MimeType.XML);
}
Run Code Online (Sandbox Code Playgroud)

2. 部署Web应用

  • 在脚本编辑器上
    • 文件
    • ->管理版本
    • ->保存新版本
    • 发布
    • ->部署为Web App
    • ->在“执行应用程序为”下,选择“您的帐户”
    • ->在“有权访问该应用的用户”中,选择“所有人,甚至匿名”
    • ->单击“部署”
    • ->复制“当前的Web应用程序URL”
    • ->单击“确定”

复制的当前网络应用URL用于importXML()。因此,电子表格上的公式如下。

=importXML("https://script.google.com/macros/s/#####/exec?id=### file id ###","### XPath query ###")
Run Code Online (Sandbox Code Playgroud)

如果这些对您没有用,对不起。