Рендеринг HTML-содержимого в электронную таблицу Google
У меня есть содержимое HTML в ячейке A1, я хочу отобразить содержимое HTML и добавить обработанное содержимое HTML в ячейку B1.
например, если у меня есть этот HTML в 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>
Я хочу, чтобы результат в B1 был
Body
Include all the information someone would need to answer your question
я пытался
var htmlTarget = current.getRange('A1').getValue();
var htmlOutput = HtmlService.createHtmlOutput(htmlTarget);
var message = htmlOutput.getContent();
database.getRange('B1').setValue(message);
И он получает тот же HTML и вставляет его с тегами, ничего не отображая.
Ответы
Я считаю вашей целью следующее.
- Вы хотите преобразовать данные HTML в текстовые данные с помощью скрипта Google Apps.
Пункты модификации:
- Метод
getContent()класса HtmlOutput возвращает данные HTML. Ref Я подумал, что это может быть причиной вашей проблемы.
Чтобы получить отрисованный текст без тегов HTML, в этом ответе я хотел бы предложить получить текстовые данные путем преобразования данных HTML в документ Google с помощью метода «Файлы: вставить» в Drive API v2. (Потому что версия Drive API по-прежнему v2 в расширенной службе Google.)
Когда ваш скрипт изменяется, он становится следующим.
Измененный скрипт:
Прежде чем использовать этот скрипт, включите Drive API в расширенных сервисах Google .
Из:var htmlTarget = current.getRange('A1').getValue();
var htmlOutput = HtmlService.createHtmlOutput(htmlTarget);
var message = htmlOutput.getContent();
database.getRange('B1').setValue(message);
К:
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);
- В этом измененном сценарии выполняется следующий поток.
- Преобразуйте данные HTML в документ Google как временный файл.
- Получить текстовые данные из Google Document.
- Удалите временный файл.
- Поместите текстовые данные в ячейку.
Рекомендации:
- getContent ()
- Файлы: вставить