2017-10-16 8 views
0

J'ai un tas de documents Google que je veux concaténer dans un nouveau document. Fondamentalement, je veux faire l'équivalent de la commande Unix:J'ai besoin de concaténer les documents de texte 1,2,3 en 4. Comment?

chat 1.txt 2.txt 3.txt> 4.txt

Je ne peux pas sembler trouver la meilleure façon de faire de la Documentation Apps Scripts. Quelqu'un pourrait-il savoir?

J'ai essayé les éléments suivants:

// ... 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; 
    }); 

Merci.

-av

+0

Ajoutez plus de détails sur vos efforts de recherche/recherche. Référence [demander]. –

+0

Je voudrais essayer [DocumentApp] (https://developers.google.com/apps-script/reference/document/document-app) [Body Class] (https://developers.google.com/apps-script/ reference/document/body) et peut-être le [getText()] (https://developers.google.com/apps-script/reference/document/body#getText()) avec [DriveApp's] (https: // developers. google.com/apps-script/reference/drive/drive-app) fichier [setContent()] (https://developers.google.com/apps-script/reference/drive/file#setContent (String)) –

+0

ne semble pas être un moyen d'obtenir le corps d'un fichier. Ce que j'ai est une liste d'objets File. –

Répondre

0

Vous devez ouvrir les fichiers à l'aide DocumentApp, de sorte que vous pouvez récupérer le contenu du document. Comme vous le voyez, la conversion directe en texte brut n'est pas prise en charge (bien que ce soit pratique). En fonction de votre cas d'utilisation

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

, vous pouvez également obtenir l'en-tête/sections de bas de page, et vous pourriez aussi sauter à l'aide getText() et utiliser Body.copy() pour créer une copie de l'élément de corps que vous peut ensuite insérer dans l'autre document. Cette approche préserverait le formatage.