Script para alterar a cor do texto individual em uma célula

10

Eu tenho uma planilha do Google com centenas de nomes de funcionários para uma programação. Cada célula possui vários nomes dentro dessa célula que se parecem com isso:

First Last
First Last
First Last

First Last
First Last

Muitos dos nomes são codificados em vermelho, enquanto os outros permanecem em preto. Estou usando um script para remover as novas linhas extras para recolher os nomes (muitas delas são removidas usando localizar / substituir por coisas como dias de folga, resultando na nova linha em branco):

First Last
First Last
First Last
First Last
First Last

O problema é que, quando esse script é executado, os nomes vermelhos têm sua fonte alterada para preto. Não consigo descobrir uma maneira de escrever um loop for para transformar essas linhas individuais dentro da célula novamente em vermelho. Acabo com todo o texto da célula em vermelho ou o código HTML indica que ele deve estar em vermelho.

Alguma idéia de como eu poderia fazer isso funcionar?

David
fonte
2
A formatação parcial do conteúdo da célula é uma adição recente ao Planilhas Google e não está realmente integrada ao restante da lógica da planilha. Em particular, as fórmulas e scripts não têm conhecimento dessa formatação e não podem aplicá-la. Sua saída não carrega nenhuma formatação.

Respostas:

2

Neste momento, existem apenas dois tipos de propriedades de intervalo para manipular seu conteúdo: valores e fórmulas. Infelizmente, alterar o conteúdo da célula usando-os remove o formato aplicado a partes do conteúdo.

Nesse caso, os usuários podem consultar o Rastreador de problemas de scripts do Google Apps para procurar uma solicitação de recurso e, caso não exista uma. Se já existe uma solicitação de recurso para o recurso que você está procurando, marque com uma estrela como o número de pessoas que estrelou uma solicitação de recurso é considerado pela equipe de scripts do Google Apps para priorizá-las.

Marque a seguinte solicitação de recurso com estrela

Problema 6000: Manipular partes do conteúdo da célula programaticamente

Rubén
fonte
2

ATUALIZAÇÃO: Os métodos mencionados nesta publicação agora estão incluídos nas notas de versão de 22 de janeiro de 2019

Alguém encontrou métodos não documentados e exemplos compartilhados relevantes para esta pergunta.

Do comentário 21 a Manipular partes do conteúdo da célula mencionadas programaticamente na minha resposta anterior .

Você também pode obter o formato atual de uma célula em que diferentes partes dos textos da célula estão em estilos diferentes:

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

Provavelmente, os novos métodos serão anunciados esta semana primeiro no Google Cloud Next 18 San Francisco e depois no Blog do desenvolvedor do Google.

Relacionado

Rubén
fonte