有没有一种方法可以使用 DriveApp 读取 .odt 文件并将其加载到变量中

Is there a way to read and load an .odt file into a variable with DriveApp

我一直在编写一个脚本,该脚本应该从几个 .odt 文件中获取信息并将其插入到几个不同的电子表格单元格中,但我一直在思考如何将该文本放入变量中以便我可以做一些正则表达式的问题获取我想要的实际信息的东西。问题是这样的:

let text = DocumentApp.openById(idString).getBody();

当我执行它时,我得到这个错误

Error   
Exception: Invalid argument

我在这里读到其中一个问题可能是 DriveApp id 与 DocumentApp id 不同,在这种情况下,我尝试先获取正确的 id,但在那种情况下,它似乎仍然不正确工作。

let text = DriveApp.getFileById(idString).getBlob;

现在,这在技术上可行,但是,我仍然不知道如何从文件中检索 body/text/contents(真的,不管你想怎么称呼它)。 我试过 getDataAsString,但这让我很好,除了我关心的一切。

希望有人能在这里提供帮助

很遗憾,odt文件无法作为可读数据直接打开。因此,在这种情况下,为了从 odt 数据中检索文本,我想提出以下流程。

  1. 使用驱动器 API.
  2. odt 数据转换为 Google 文档
  3. 使用文档服务 (DocumentApp) 打开创建的 Google 文档。
  4. 从文档中检索文本。

当此流程反映在 Google Apps Script 的示例脚本中时,它变成如下。

示例脚本:

在您使用此脚本之前,please enable Drive API at Advanced Google services

function myFunction() {
  const fileId = "###"; // Please set the file ID of odt file.

  const id = Drive.Files.copy({title: "temp", mimeType: MimeType.GOOGLE_DOCS}, fileId).id;
  const doc = DocumentApp.openById(id);
  const text = doc.getBody().getText();
  console.log(text);
}
  • 当此脚本为运行时,上述流程为运行。这样,您可以从 odt 文件中检索文本数据。
  • 转换后的文档在根文件夹中创建为临时文件。您可以在脚本完成后使用 DriveApp.getFileById(id).setTrashed(true) 将其删除。

参考: