Render konten HTML ke spreadsheet google

Nov 14 2020

Saya memiliki konten HTML di sel A1, saya ingin merender konten HTML dan menambahkan konten HTML yang telah dirender di sel B1

misal kalo saya udah HTML ini di A1

<label class="s-label mb4 d-block" for="wmd-input">
                    Body

                        <p class="s-description mt2">Include all the information someone would need to answer your question</p>
                </label>

Saya ingin keluaran dalam B1

Body
Include all the information someone would need to answer your question

Saya sudah mencoba

  var htmlTarget = current.getRange('A1').getValue();
  var htmlOutput = HtmlService.createHtmlOutput(htmlTarget);
  var message = htmlOutput.getContent();
  database.getRange('B1').setValue(message);

Dan itu mendapatkan HTML yang sama dan menempelkannya dengan tag tanpa merender apa pun

Jawaban

1 Tanaike Nov 15 2020 at 06:29

Saya yakin tujuan Anda sebagai berikut.

  • Anda ingin mengubah data HTML menjadi data teks biasa menggunakan Google Apps Script.

Poin modifikasi:

  • Metode getContent()di Kelas HtmlOutput mengembalikan data HTML. Ref Saya pikir ini mungkin alasan masalah Anda.

Untuk mengambil teks yang dirender tanpa tag HTML, dalam jawaban ini, saya ingin mengusulkan untuk mengambil data teks dengan mengonversi data HTML ke Google Document menggunakan metode "Files: insert" di Drive API v2. (Karena, versi API Drive masih v2 di layanan Google Lanjutan.)

Ketika skrip Anda diubah, itu menjadi sebagai berikut.

Skrip yang dimodifikasi:

Sebelum Anda menggunakan skrip ini, harap aktifkan API Drive di layanan Google Lanjutan .

Dari:
var htmlTarget = current.getRange('A1').getValue();
var htmlOutput = HtmlService.createHtmlOutput(htmlTarget);
var message = htmlOutput.getContent();
database.getRange('B1').setValue(message);
Untuk:
var htmlTarget = current.getRange('A1').getValue();
var blob = Utilities.newBlob(htmlTarget, MimeType.HTML);
var id = Drive.Files.insert({title: "sample", mimeType: MimeType.GOOGLE_DOCS}, blob).id;
var message = DocumentApp.openById(id).getBody().getText();
DriveApp.getFileById(id).setTrashed(true); //  or Drive.Files.remove(id);
database.getRange('B1').setValue(message);
  • Dalam skrip yang dimodifikasi ini, alur berikut dijalankan.
    1. Konversikan data HTML ke Google Document sebagai file temporal.
    2. Ambil data teks dari Google Document.
    3. Hapus file temporal.
    4. Letakkan data teks ke sel.

Referensi:

  • getContent ()
  • File: sisipkan