Script untuk mengubah warna teks individual dalam sel

10

Saya memiliki spreadsheet Google dengan ratusan nama karyawan untuk jadwal. Setiap sel memiliki beberapa nama di dalam sel yang terlihat seperti ini:

First Last
First Last
First Last

First Last
First Last

Banyak nama yang diberi kode warna merah sementara yang lain tetap hitam. Saya menggunakan skrip untuk menghapus baris baru tambahan untuk menciutkan nama-nama ini (banyak dari mereka dihapus menggunakan find / replace untuk hal-hal seperti hari libur, menghasilkan baris baru kosong):

First Last
First Last
First Last
First Last
First Last

Masalahnya adalah, ketika skrip ini dijalankan, nama merah akan berubah font menjadi hitam. Saya tidak bisa menemukan cara untuk menulis loop for untuk mengubah baris-baris individu dalam sel kembali menjadi merah. Saya berakhir dengan semua teks dalam sel menjadi merah, atau kode HTML yang menunjukkan itu harus merah.

Ada ide tentang bagaimana saya bisa membuat ini bekerja?

David
sumber
2
Format sebagian konten sel adalah tambahan terbaru untuk Google Sheets, dan itu tidak benar-benar terintegrasi dengan sisa logika spreadsheet. Secara khusus, rumus dan skrip tidak mengetahui pemformatan tersebut, dan tidak dapat menerapkannya. Output mereka tidak membawa format seperti itu.

Jawaban:

2

Saat ini hanya ada dua jenis properti rentang untuk menangani kontennya: nilai dan rumus. Sayangnya mengubah konten sel menggunakan mereka menghapus format yang diterapkan ke bagian konten.

Dalam kasus seperti ini, pengguna dapat melihat ke Google Apps Script Issue Tracker untuk mencari permintaan fitur dan jika tidak ada yang mengirimkan. Jika permintaan fitur sudah ada untuk fitur yang Anda cari, beri bintang sebagai jumlah orang yang membintangi permintaan fitur dianggap oleh tim Google Apps Script untuk memprioritaskan mereka.

Silakan beri bintang pada permintaan fitur berikut

Masalah 6000: Tangani bagian konten sel secara terprogram

Rubén
sumber
2

UPDATE: Metode yang disebutkan dalam posting ini sekarang termasuk pada catatan rilis 22 Januari 2019

Seseorang menemukan metode tidak berdokumen dan membagikan contoh yang relevan untuk pertanyaan ini.

Dari komentar 21 hingga Menangani sebagian konten sel yang secara program disebutkan pada jawaban saya sebelumnya .

Anda juga bisa mendapatkan format sel saat ini di mana berbagai bagian teks sel berada dalam gaya yang berbeda:

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

Mungkin metode baru akan diumumkan minggu ini di Google Cloud 18 Berikutnya San Francisco kemudian di Google Developers Blog.

Terkait

Rubén
sumber