Script per modificare il colore del testo individuale all'interno di una cella


10

Ho un foglio di calcolo di Google con centinaia di nomi di dipendenti per un programma. Ogni cella ha più nomi all'interno di quella cella che assomigliano a questo:

First Last
First Last
First Last

First Last
First Last

Molti dei nomi sono codificati in rosso, mentre gli altri rimangono neri. Sto usando uno script per rimuovere le nuove righe extra per comprimere i nomi in questo (molti di essi vengono rimossi usando trova / sostituisci per cose come i giorni liberi, risultando nella riga vuota):

First Last
First Last
First Last
First Last
First Last

Il problema è che quando si esegue questo script i nomi rossi hanno il carattere cambiato in nero. Non riesco a capire un modo per scrivere un ciclo for per riportare in rosso queste singole righe all'interno della cella. O finisco con tutto il testo nella cella rosso, o codice HTML che indica che dovrebbe essere rosso.

Qualche idea su come potrei farlo funzionare?


2
La formattazione parziale del contenuto delle celle è una recente aggiunta a Fogli Google e non si integra realmente con il resto della logica del foglio di calcolo. In particolare, le formule e gli script non sono a conoscenza di tale formattazione e non sono in grado di applicarla. Il loro output non porta con sé tale formattazione.

Risposte:


2

In questo momento, esistono solo due tipi di proprietà di intervallo per gestirne il contenuto: valori e formule. Sfortunatamente, modificando il contenuto della cella utilizzandoli si rimuove il formato applicato a parti del contenuto.

In questo caso, gli utenti potrebbero dare un'occhiata al Tracker dei problemi di script di Google Apps per cercare una richiesta di funzione e nel caso in cui non ce ne sia una di invio. Se esiste già una richiesta di funzione per la funzione che stai cercando, contrassegnala come numero di persone che hanno recitato in una richiesta di funzionalità viene considerato dal team di Google Apps Script per stabilire la priorità.

Aggiungi la seguente richiesta di funzionalità

Problema 6000: gestire parti del contenuto delle celle a livello di codice


2

AGGIORNAMENTO: I metodi menzionati in questo post sono ora inclusi nelle note di rilascio del 22 gennaio 2019

Qualcuno ha trovato metodi non documentati ed esempi condivisi rilevanti per questa domanda.

Dal commento 21 a Gestire parti del contenuto della cella menzionate a livello di codice sulla mia risposta precedente .

Puoi anche ottenere il formato corrente di una cella in cui parti diverse dei testi della cella sono in stili diversi:

  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();
  }

Probabilmente i nuovi metodi saranno annunciati questa settimana prima su Google Cloud Next 18 San Francisco e poi sul Blog degli sviluppatori di Google.

Relazionato

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.