是否有一种方法来读取和加载一个.odt文件到一个变量与DriveApp



我一直在写一个脚本,应该从几个。odt文件中获取信息,并将其插入到几个不同的电子表格单元格中,我遇到了如何将该文本转换为变量的问题,因此我可以做一些正则表达式的东西来获得我想要的实际信息。问题是:

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

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

Error   
Exception: Invalid argument

我在这里读到,其中一个问题可能是DriveApp id与DocumentApp id不一样,在这种情况下,我尝试先获得适当的id,但在这种情况下,它似乎仍然不起作用。

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

现在,这在技术上是可行的,然而,我仍然不知道如何从文件中检索正文/文本/内容(真的,无论你想怎么称呼它)。我试过getDataAsString,但那只是让我很好,但我关心的一切。

希望有人能帮上忙

遗憾的是,odt文件不能作为可读数据直接打开。因此,在本例中,为了从odt数据中检索文本,我想提出以下流程:

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

当这个流程反映在Google Apps script的示例脚本中时,它变成如下所示:

示例脚本:

在使用此脚本之前,请在Advanced Google services中启用Drive API。

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)删除它。
  • 参考:

<
  • 文件:副本/gh>

最新更新