J'ai un Google Docs géant qui ressemble à ceci:
...
this is a line with some text, 1
this is a line with some more text, 1
here is another line with some text, 0
here is another line with some text, 1
here is yet another line with text, 0
and finally here is a line with text, 1
...
Les lignes avec du texte peuvent être n'importe où, de quelques mots à quelques paragraphes. Cependant, ils se terminent toujours par un 1
ou 0
. Ces lignes ont été extraites d'une feuille de calcul et je peux y accéder en tant que bloc de texte dans une cellule avec une colonne adjacente contenant 1
ou 0
.
Excel ressemblerait à quelque chose comme:
-----------------
block of text | 0
block of text | 1
block of text | 0
block of text | 0
block of text | 1
------------------
Le problème auquel je fais face:
Everything with a `1` should be right aligned on this document.
Everything with a `0` should be left aligned on this document.
J'espère qu'il y a un moyen de le faire (écrire une fonction/utiliser un outil sur la feuille de calcul ou sélectionner un texte pertinent dans le document). J'imagine que tenter de sélectionner les lignes dans le document peut être plus difficile, car certains blocs de texte couvrent plusieurs paragraphes mais ne comportent qu'un seul indicateur numérique.
Le script d'application suivant extrait les valeurs de la plage A1: B4 de la feuille active et les utilise pour remplir un nouveau document (appelé Document de test). de la manière spécifiée. Chaque entrée de la colonne A est ajoutée en tant que paragraphe et alignée selon la colonne B (entrée zéro = gauche, non nul = droite).
Si vous souhaitez modifier un document existant, utilisez var doc = DocumentApp.openById('DOCUMENT_ID_GOES_HERE');
au lieu de la première ligne de cette fonction.
function alignParagraphs() {
var doc = DocumentApp.create('Test Document');
var body = doc.getBody();
var range = SpreadsheetApp.getActiveSheet().getRange("A1:B4");
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
body.appendParagraph(values[i][0])
.setAlignment(values[i][1] ? DocumentApp.HorizontalAlignment.RIGHT : DocumentApp.HorizontalAlignment.LEFT);
}
}