如何将Google Sheet单元格中的HTML代码渲染到另一单元格
Google Sheets 批量将HTML渲染为文本(Tab2工作表F列转G列)
以下是适配需求的完整Google Apps Script代码,可将Tab2工作表F列的HTML代码渲染为纯文本后写入同一行的G列:
function renderHtmlToText() { // 获取目标工作表 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tab2"); if (!sheet) { SpreadsheetApp.getUi().alert("未找到名为Tab2的工作表"); return; } // 获取F列所有数据范围(从第1行到最后一行) const fColumn = sheet.getRange("F:F"); const fValues = fColumn.getValues(); const lastRow = sheet.getLastRow(); // 循环处理每一行 for (let i = 0; i < lastRow; i++) { const htmlContent = fValues[i][0]; // 跳过空单元格 if (!htmlContent || typeof htmlContent !== "string") { continue; } try { // 将HTML内容转为Blob const blob = Utilities.newBlob(htmlContent, MimeType.HTML); // 创建临时Google文档解析HTML const tempDoc = Drive.Files.insert( { title: `Temp_HTML_Render_${i}`, mimeType: MimeType.GOOGLE_DOCS }, blob ); // 提取文档中的纯文本 const textContent = DocumentApp.openById(tempDoc.id).getBody().getText(); // 删除临时文档 DriveApp.getFileById(tempDoc.id).setTrashed(true); // 将文本写入对应行的G列 sheet.getRange(i + 1, 7).setValue(textContent.trim()); } catch (error) { // 处理错误,写入错误提示 sheet.getRange(i + 1, 7).setValue(`渲染失败:${error.message}`); } } SpreadsheetApp.getUi().alert("HTML渲染完成"); }
使用步骤:
- 打开你的Google Sheet,点击顶部菜单栏的「扩展程序」→「Apps脚本」
- 删除编辑器中的默认代码,粘贴上述完整代码
- 点击编辑器顶部的「保存」按钮,为脚本命名(比如HTML_Render)
- 点击运行按钮(▶️),首次运行会触发权限授权,按照提示完成授权(需要允许脚本访问你的Drive和Spreadsheet)
- 授权完成后再次运行,等待脚本执行完成
代码说明:
- 工作表定位:通过
getSheetByName("Tab2")精准定位目标工作表 - 空值跳过:循环时跳过F列空单元格,避免无效操作
- 临时文档处理:每次创建唯一命名的临时文档解析HTML,完成后立即移至回收站,避免Drive空间占用
- 错误处理:捕获渲染过程中的异常,在G列写入错误提示,方便排查问题
- 批量处理:自动遍历所有有数据的行,无需手动指定范围
内容的提问来源于stack exchange,提问作者ColbyTravel
相关产品推荐
相关产品推荐

