Rendern Sie HTML-Inhalte in Google Spreadsheet

Nov 14 2020

Ich habe einen HTML-Inhalt in Zelle A1. Ich möchte den HTML-Inhalt rendern und den gerenderten HTML-Inhalt in Zelle B1 hinzufügen

zB wenn ich diesen HTML in A1 habe

<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>

Ich möchte, dass die Ausgabe in B1 ist

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

ich habe es versucht

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

Und es bekommt den gleichen HTML-Code und fügt ihn mit den Tags ein, ohne etwas zu rendern

Antworten

1 Tanaike Nov 15 2020 at 06:29

Ich glaube Ihr Ziel wie folgt.

  • Sie möchten die HTML-Daten mithilfe von Google Apps Script in Nur-Text-Daten konvertieren.

Änderungspunkte:

  • Die Methode von getContent()in Class HtmlOutput gibt die HTML-Daten zurück. Ref Ich dachte, dass dies der Grund für Ihr Problem sein könnte.

Um den gerenderten Text ohne die HTML-Tags abzurufen, möchte ich in dieser Antwort vorschlagen, die Textdaten durch Konvertieren der HTML-Daten in Google Document mithilfe der Methode "Dateien: Einfügen" in Drive API v2 abzurufen. (Da die Version der Drive-API beim erweiterten Google-Dienst immer noch Version 2 ist.)

Wenn Ihr Skript geändert wird, sieht es wie folgt aus.

Geändertes Skript:

Bevor Sie dieses Skript verwenden, aktivieren Sie die Drive-API bei den erweiterten Google-Diensten .

Von:
var htmlTarget = current.getRange('A1').getValue();
var htmlOutput = HtmlService.createHtmlOutput(htmlTarget);
var message = htmlOutput.getContent();
database.getRange('B1').setValue(message);
Zu:
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);
  • In diesem geänderten Skript wird der folgende Ablauf ausgeführt.
    1. Konvertieren Sie HTML-Daten als temporäre Datei in Google Document.
    2. Rufen Sie Textdaten aus Google Document ab.
    3. Entfernen Sie die temporäre Datei.
    4. Fügen Sie die Textdaten in die Zelle ein.

Verweise:

  • getContent ()
  • Dateien: einfügen