Google apps script 将在特定文件夹中找到的所有文档的正文复制到Google电子表格中

Google apps script 将在特定文件夹中找到的所有文档的正文复制到Google电子表格中,google-apps-script,google-sheets,google-docs,Google Apps Script,Google Sheets,Google Docs,我正在尝试创建一个脚本,该脚本获取Google Drive文件夹中的所有(Google文档)文档ID,从每个文档中获取正文,并将其返回到中的行中 以下语法获取文件ID和名称,但不获取正文: 函数onOpen(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var ui=SpreadsheetApp.getUi().createAddonMenu(); ui.addItem('列出文件夹中文件的所有正文组件,但不包括子文件夹','列出文件夹中文件的

我正在尝试创建一个脚本,该脚本获取Google Drive文件夹中的所有(Google文档)文档ID,从每个文档中获取正文,并将其返回到中的行中

以下语法获取文件ID和名称,但不获取正文:

函数onOpen(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var ui=SpreadsheetApp.getUi().createAddonMenu(); ui.addItem('列出文件夹中文件的所有正文组件,但不包括子文件夹','列出文件夹中文件的所有正文组件,但不包括子文件夹') .addToUi(); } 功能列表\u所有\u正文\u组件\u文件\u内部\u一个\u文件夹\u无\u子文件夹(){ var sh=SpreadsheetApp.getActiveSheet(); //提示用户输入google驱动器文件夹ID var folderID=Browser.inputBox(“输入要搜索的文件夹ID-它是URL中/folders/:”之后的位”); //返回由该ID号标识的文件夹以供进一步操作 var folder=DriveApp.getFolderById(folderID); //将列表打印到A列到C列 var列表=[]; push(['Body','Name','ID']); var files=folder.getFiles(); while(files.hasNext()){ file=files.next(); 变量行=[] row.push(file.getBlob()、file.getName()、file.getId()) 列表。推送(行); } sh.getRange(1,1,list.length,list[0].length).setValues(list); } 我认为问题在于
file.getBlob
我已经尝试过了
file.getBlob.getDataAsString()
,但返回:

TypeError:在对象函数getBlob(){/**/}中找不到函数getDataAsString


如何检索每个文档正文的文本?

由于我们感兴趣的是谷歌文档,因此请将文件扫描重点放在以下内容上:

var files=folder.getFilesByType(MimeType.GOOGLE\u DOCS);
然后,在使用文件迭代器时,使用文件ID和DocumentApp将文件作为Google文档打开-这样,正文将很容易访问

更新代码:

功能列表\u所有\u主体\u组件\u文件\u在\u一个\u文件夹内\u没有\u子文件夹(){
var sh=SpreadsheetApp.getActiveSheet();
//提示用户输入google驱动器文件夹ID
var folderID=Browser.inputBox(“输入要搜索的文件夹ID-它是URL中/folders/:”之后的位”);
//返回由该ID号标识的文件夹以供进一步操作
var folder=DriveApp.getFolderById(folderID);
//将列表打印到A列到C列
var列表=[];
push(['Body','Name','ID']);
var files=folder.getFilesByType(MimeType.GOOGLE_DOCS);
while(files.hasNext()){
var fileId=files.next().getId();
var doc=DocumentApp.openById(fileId);
变量行=[]
row.push(doc.getBody().editAsText().getText(),
doc.getName(),
文件ID)
列表。推送(行);
}
sh.getRange(1,1,list.length,list[0].length).setValues(list);
}

是这些已知文件,如文本文件。当你试图得到一堆驱动器类型的文件时,他们通常会先把它们转换成PDF格式,如果你想把二进制文件打印到工作表单元格中,那就太麻烦了。文件.getBlob().getDataAsString()是有效语法。不知道那里发生了什么。