2017-02-13 4 views
0

Comment pouvons-nous supprimer vraiment paragraphes vides à partir de Google Document? Ce code supprimera tous les paragraphes qui contiennent des images, des heures, etc. Vous ne pouvez pas comprendre comment vérifier si un paragraphe est réellement vide? getText() et editAsText() ne donne rien à cela.Google Docs Apps script - comment supprimer des paragraphes vraiment vides

var doc = DocumentApp.getActiveDocument(); 
var body = doc.getBody(); 
var docParagraphs = doc.getBody().getParagraphs(); 

for (var i = 0; i < docParagraphs.length; i++) { 
    if (docParagraph[i].getText() === '') { 
     docParagraphs[i].removeFromParent(); 
    } 
} 

Je sais qu'il y a des sujets liés à ~ problème similaire, mais pas la même chose. How to find and remove blank paragraphs in a Google Document with Google Apps Script?

UPD: réponse correcte:

var doc = DocumentApp.getActiveDocument(); 
var body = doc.getBody(); 

for (var i = 0; i < doc.getBody().getParagraphs().length; i++) { 
    if (docParagraph[i].getText() === '') { 
    if (docParagraph_i.getNumChildren() == 0 && i < (docParagraphs.length - 1)) { 
     docParagraph[i].removeFromParent(); 
    } 
    } 
} 

J'ai changé aussi pour l'expression i limiter par un des éléments actuels compte, ne sont pas stockées dans la variable. Parce que les éléments sont supprimés (ou dans une autre implémentation ajoutée, par exemple), il y aura une erreur quand aucun paragraphe, mais le cycle, ne voudra les obtenir.

&& i < (...) 

car le dernier paragraphe ne peut pas être supprimé et génère une erreur.

Répondre

0

Vous voulez vérifier pour les enfants dans le paragraphe

paragraph.getNumChildren() //returns the number of children

+0

J'ai essayé .getNumChildren() avant, et j'ai essayé .getChild(). GetType() avant quelques fois sans chance, mais votre réponse m'a dit de revérifier à nouveau. J'ai fait une pause après avoir posé la question et maintenant avec l'esprit clair j'ai trouvé que j'ai utilisé .getNumChildren() pas au paragraphe mais pour le premier enfant possible (par .getChild()) et didn comprend pourquoi il jette même une erreur dedans. getChild(). Le premier de ces paragraphes était vraiment vide ... Thanx! – Bowman