Script pour changer la couleur du texte individuel dans une cellule

10

J'ai une feuille de calcul Google avec des centaines de noms d'employés pour un calendrier. Chaque cellule a plusieurs noms dans cette cellule qui ressemblent à ceci:

First Last
First Last
First Last

First Last
First Last

Beaucoup de noms sont codés en rouge tandis que les autres restent noirs. J'utilise un script pour supprimer les sauts de ligne supplémentaires pour réduire les noms à cela (beaucoup d'entre eux sont supprimés en utilisant find / replace pour des choses telles que les jours de congé, résultant en un retour à la ligne vierge):

First Last
First Last
First Last
First Last
First Last

Le problème est que, lorsque ce script est exécuté, les noms rouges ont leur police changée en noir. Je ne peux pas trouver un moyen d'écrire une boucle for pour retourner ces lignes individuelles dans la cellule en rouge. Soit je me retrouve avec tout le texte de la cellule en rouge, soit du code HTML indiquant qu'il doit être rouge.

Des idées sur la façon dont je pourrais faire fonctionner cela?

David
la source
2
Le formatage partiel du contenu des cellules est un ajout récent à Google Sheets, et il n'est pas vraiment intégré au reste de la logique de feuille de calcul. En particulier, les formules et les scripts ne connaissent pas ce formatage et ne sont pas en mesure de l'appliquer. Leur sortie ne porte pas un tel formatage avec elle.

Réponses:

2

Pour le moment, il n'y a que deux types de propriétés de plage pour gérer son contenu: les valeurs et les formules. Malheureusement, la modification du contenu des cellules en les utilisant supprime le format appliqué aux parties du contenu.

Dans ce cas, les utilisateurs peuvent consulter le suivi des problèmes de script Google Apps pour rechercher une demande de fonctionnalité et au cas où il n'y en aurait pas une. Si une demande de fonctionnalité existe déjà pour la fonctionnalité que vous recherchez, indiquez-la comme le nombre de personnes qui ont marqué une demande de fonctionnalité est pris en compte par l'équipe de script Google Apps pour les hiérarchiser.

Veuillez suivre la demande de fonctionnalité suivante

Problème 6000: gérer des parties du contenu des cellules par programme

Rubén
la source
2

MISE À JOUR: Les méthodes mentionnées dans cet article sont désormais incluses dans les notes de publication du 22 janvier 2019

Quelqu'un a trouvé des méthodes non documentées et partagé des exemples pertinents pour cette question.

Du commentaire 21 à Gérer certaines parties du contenu des cellules mentionnées par programme dans ma réponse précédente .

Vous pouvez également obtenir le format actuel d'une cellule où différentes parties des textes de la cellule sont dans des styles différents:

  var richText = ss.getCurrentCell().getRichTextValue();
  var runs = richText.getRuns();
  for (var i=0; i<runs.length; i++)
  {
    // get the style of this section of text, between startIndex and endIndex
    var run = runs[i];
    var startIndex = run.getStartIndex();
    var endIndex = run.getEndIndex();
    var styleBold = run.getTextStyle().isBold();
  }

Les nouvelles méthodes seront probablement annoncées cette semaine d'abord sur Google Cloud Next 18 San Francisco puis sur le blog des développeurs Google.

en relation

Rubén
la source