0

我正在尝试从云端硬盘文件夹中的每个 Google 文档中提取文本并将文本粘贴到 Google 电子表格的第一列中,以便文件 1 的内容在 A1 中,文件 2 的内容在 A2 等中。最终我我正在尝试重新创建存储在所有这些文件中的信息的数据库,所以如果文本可以按字段分割就更好了,但我认为这在 Excel 中使用 Text to Columns 应该是微不足道的。

我在网上使用了一些片段来尝试一下,但我现在被难住了。

这是我的脚本:

//Function to extract the body from each document in a folder and copy it to a spreadsheet
function extract() {

//Define the folder we're working with ("Communication Passports") and get the file list
var folder = DocsList.getFolder("Communication Passports");
var contents = folder.getFiles();

//Define the destination spreadsheet file (CP) and set up the sheet to receive the data

var ss = SpreadsheetApp.openById("0AicdFGdf-Cx5dHFTX1R3Wm1RTEFTZ2d5ZmxuSjJSOHc");
SpreadsheetApp.setActiveSpreadsheet(ss);
Logger.log('File name: ' + ss.getName()); 
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Name", "Date", "Contents", "URL", "Download", "Description"]);

//Set up other variables
var file;
var data;

//Loop through and collect the data (I don't actually need this - just borrowed the code from    a   snippet online - but it is SO CLOSE!)
//Sadly, getBody doesn't work on files, only on documents
for (var i = 0; i < contents.length; i++) {
file = contents[i];

data = [ 
  file.getName(),
  file.getDateCreated(),
  file.getViewers(),
  file.getUrl(),
  "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
  file.getDescription()
];

sheet.appendRow(data);


//Extract the text from the file (this doesn't work at present, but is what I actually need)


var doc = DocumentApp.openById(file.getId());
var body = doc.getBody();

//Find a way to paste the extracted body text to the spreadsheet
}
};

任何帮助都将非常感激 - 我不是程序员,我是老师,信息是关于我们学校孩子的学习需求(有人在夏天删除了数据库,我们的备份只能追溯到一个月!)。

谢谢,

西蒙

4

1 回答 1

1

尝试添加:

var doc = DocumentApp.openById(file.getId());
body = doc.getBody().getText();

返回文档的实际内容。

我编写了另一个函数来将内容解析为更可用的块,然后传回数据表中的一个条目,它工作正常。

于 2014-05-21T14:02:17.657 回答