我需要将文本1,2,3连接成4.如何?

时间:2017-10-16 23:36:34

标签: google-apps-script google-drive-api concatenation

我有一堆谷歌文档,我想连接成一个全新的文档。基本上我想做相当于Unix的命令:

cat 1.txt 2.txt 3.txt> 4.txt

我似乎无法从Apps Scripts文档中找出最佳方法。有人会碰巧知道吗?

我尝试了以下内容:

// ... code omitted
var entries = [];
while (files.hasNext()) {
    var file = files.next();
    var name = file.getName();
    if (file.getOwner().getName() != 'My Name') continue

    var re = /Pattern I am looking for - \d\d/g;
    if (name.match(re) == null) continue;

    entries.push( {"Name" : name, "File" : file} );
}
entries.sort(function(a,b) { return a.Name.localeCompare(b.Name); });

// Open the Full.txt file and add each file into it in sequence.
var fullDoc = DocumentApp.create('Full.txt');
entries.forEach(function(e) {
    var contents = e.File.getAs('text/plain');
    // Haven't yet gotten to sticking contents into the target file
    // because content retrieval itself fails with the message:
    //  "Converting from application/vnd.google-apps.document to text/plain 
    //  is not supported. (line 51, file "DocMerge")"
    return;
  });

感谢。

-av

1 个答案:

答案 0 :(得分:0)

您需要使用DocumentApp打开文件,以便检索文档内容。正如您所看到的,不支持直接转换为纯文本(尽管它很方便)。

var source_doc = DocumentApp.openById(e.File.getId());
var contents = source_doc.getBody().getText();

根据您的使用情况,您可能还需要获取页眉/页脚部分,也可以跳过使用getText()并使用Body.copy()创建可以插入的body元素的副本另一个医生。这种方法可以保留格式。