web-dev-qa-db-fra.com

Script pour changer la couleur du texte individuel dans une cellule

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

La plupart des noms portent une couleur rouge alors que les autres restent en noir. J'utilise un script pour supprimer les retours à la ligne supplémentaires afin de réduire les noms (beaucoup d'entre eux sont supprimés à l'aide de la fonction de recherche/remplacement, par exemple, des jours de congé, ce qui donne un retour à la ligne vide):

First Last
First Last
First Last
First Last
First Last

Le problème est que, lorsque ce script est exécuté, la police des noms rouges est modifiée en noir. Je n'arrive pas à trouver un moyen d'écrire une boucle for pour redonner à chaque ligne de la cellule une couleur rouge. Je finis soit avec tout le texte de la cellule en rouge, soit un code HTML indiquant qu'il devrait être en rouge.

Des idées sur la façon dont je pourrais faire ce travail?

10
David

À l'heure actuelle, il n'existe que deux types de propriétés de plage pour gérer son contenu: les valeurs et les formules. Malheureusement, le fait de modifier le contenu de la cellule à l'aide de ces éléments supprime le format appliqué à certaines parties du contenu.

Dans ce cas, les utilisateurs peuvent consulter = Google Apps Script Tracker Tracker pour rechercher une demande de fonctionnalité et s’il n’y en a pas une de la soumettre. Si une demande de fonctionnalité existe déjà pour la fonctionnalité que vous recherchez, indiquez-la en tant que nombre de personnes ayant déclenché le lancement d'une demande de fonctionnalité par l'équipe de script Google Apps afin de la hiérarchiser.

S'il vous plaît étoiles la demande de fonctionnalité suivante

Numéro 6000: Traiter des parties du contenu d'une cellule par programmation

2
Rubén

MISE À JOUR: Les méthodes mentionnées dans ce message sont maintenant 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.

De commentaire 21 à manipuler des parties du contenu de la cellule mentionnées par programme sur ma réponse précédente .

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

  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 18 prochain à San Francisco , puis sur le blog de Google Developers.

Apparenté, relié, connexe

2
Rubén