我一直在写一个脚本,应该从几个。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
数据中检索文本,我想提出以下流程:
- 使用Drive API转换
odt
数据到Google文档 - 使用文档服务(DocumentApp)打开创建的Google文档。
- 从文档中检索文本
当这个流程反映在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>