You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在n8n中向Google Docs粘贴带格式的HTML内容?

如何在n8n中向Google Docs粘贴带格式的HTML内容?

我之前做简报自动化流程时,刚好碰到过一模一样的问题——n8n自带的Google Docs节点直接插入HTML,格式经常乱得一塌糊涂。折腾了好一阵,总结了几个亲测有效的解决办法,你可以挨个试试:

方法一:用Google Apps Script做中间转接(最稳定)

n8n封装的Google Docs节点对HTML的解析支持确实偏弱,不如直接借助Google Apps Script的原生API,它的appendHtml()方法对HTML格式的兼容度要靠谱得多:

  1. 新建一个Google Apps Script项目,粘贴下面的代码:
    function doPost(e) {
      // 接收n8n传来的HTML内容
      const htmlContent = e.postData.contents;
      // 替换成你的目标文档ID
      const targetDocId = "你的Google Docs文档ID";
      const doc = DocumentApp.openById(targetDocId);
      
      // 追加HTML内容到文档末尾,也可以用insertHtml指定插入位置
      doc.getBody().appendHtml(htmlContent);
      
      return ContentService.createTextOutput("内容已成功插入").setMimeType(ContentService.MimeType.TEXT);
    }
    
  2. 部署这个脚本为Web应用:点击「部署」→「新建部署」,类型选「Web应用」,执行权限选「我(自己)」,访问权限根据需求选「任何人,甚至匿名」(如果内容不敏感),或者配置n8n的OAuth2凭证做安全授权。
  3. 在n8n里添加一个HTTP Request节点,请求方法选POST,URL填你部署得到的Web应用地址,请求体选「Raw」→「Text」,把你的HTML内容填进去,运行流程就能看到带格式的内容出现在文档里了。

方法二:直接调用Google Docs的BatchUpdate API

如果不想依赖Apps Script,也可以在n8n里直接调用Google Docs官方API插入HTML:

  1. 在n8n里添加一个HTTP Request节点,配置Google的OAuth2授权(需要提前开启Google Docs API权限)。
  2. 请求URL填:https://docs.googleapis.com/v1/documents/你的文档ID:batchUpdate
  3. 请求方法选POST,请求体选「Raw」→「JSON」,构造如下格式的请求内容:
    {
      "requests": [
        {
          "insertHtml": {
            "location": {
              "index": 1 // 1代表文档开头,如需插入末尾,可先调用get接口获取当前文档长度
            },
            "html": "<h2>简报标题</h2><p>这是一段<b>加粗</b>的正文</p><ul><li>列表项1</li><li>列表项2</li></ul>"
          }
        }
      ]
    }
    
  4. 运行节点后,Google Docs会直接解析HTML并完整保留格式。

方法三:利用Markdown转换(如果你已有Markdown版本)

既然你已经有Markdown格式的内容,其实可以绕开复杂HTML的坑:

  1. 在n8n里添加一个Execute Code节点,用marked这类库把Markdown转成简洁的HTML(Markdown转的HTML结构更规整,Google Docs更容易解析)。
  2. 再用上面两种方法中的任意一种,把转换后的HTML插入到文档中,成功率比直接用复杂HTML高很多。

额外注意事项

  • Google Docs对HTML的支持有局限,不支持复杂CSS类、浮动布局、自定义字体(仅支持自带字体),所以如果你的HTML里有这类内容,最好先简化成内联样式或Google Docs支持的标签。
  • 如果需要插入到文档特定位置,记得先调用Google Docs的get接口获取当前文档的内容长度,再指定insertHtml的index值,避免覆盖已有内容。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 14:47:59