苏森AI

  • 首页
  • AI资讯
  • AI应用
  • AI工作流
  • AI智能体
  • AI提示词
苏森AI
从这里开启你的AI学习旅程!
  1. 首页
  2. AI工作流
  3. 正文

告别重复劳动!用n8n零代码实现数据分析与图表自动化,人人都是数据分析师

2025-07-03 87点热度 0人点赞 0条评论

如何让数据为你打工呢?

嘿,职场奋斗人,你是否也曾被这样的场景困扰:
每个月总有那么几天,你要对着一堆原始数据,手动筛选、计算、汇总,再小心翼翼地粘贴到 Excel 里生成图表,最后做成报告发给老板或团队。这个过程不仅枯燥乏味,还极易出错,耗费了你大量宝贵的下午茶和摸鱼时间。
如果这一切都能自动完成,该有多好?

今天,就来终结这种低效的循环!本文将手把手带你使用强大的开源自动化工具 n8n,结合 NoCoDB 数据库和 QuickChart 图表服务,搭建一个完全自动化的数据分析与可视化工作流。

最重要的是,你几乎不需要写一行代码,只需简单的拖拉拽,就能让数据为你自动“打工”!📊✨

📌 这篇文章适合谁?

  • • 想提升效率的数据分析师:将常规报表自动化,解放你的精力去应对更复杂的分析任务。
  • • 不懂编程但想自动化报表的上班族:告别繁琐的手动操作,轻松搞定数据报告。
  • • 使用 n8n 的自动化爱好者:解锁 n8n 的新玩法,让你的工作流更强大、更直观。

🆙 前置条件

  • • 🪜 VPN 请自行准备
  • • 相关的API-Key配置
  • • Docker 容器

部署N8N

n8n (https://n8n.io):本次行动的“大脑”。它是一款开源、可自部署的节点式工作流自动化工具。你可以把它想象成一个拥有超能力的数字管道工,通过连接不同的“节点”(代表各种应用和服务),就能创建出强大的自动化流程。

注:docker部分不予说明,请自行AI。

1、持久化数据

启动docker数据卷,这里是为了持久化存储,确保 n8n_data 卷已正确挂载(docker volume inspect n8n_data 可检查)。

docker volume create n8n_data

2、运行启动n8n

启动运行n8n,如果在n8n 中调用外部服务遇到dns解析错误的时候,可以在启动的时候加上这个参数,在启动命令中添加环境变量,启用 Task Runners,配置文件权限问题,配置-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true,修正权限。

docker run -it --rm 
    --name n8n 
    --dns 8.8.8.8 
    -e GENERIC_TIMEZONE=Asia/Shanghai 
    -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true 
    -e N8N_RUNNERS_ENABLED=true 
    -p 5678:5678 
    -v n8n_data:/home/node/.n8n 
    docker.n8n.io/n8nio/n8n

3、更新镜像

升级到最新版本:如果使用的是旧版 n8n,建议更新镜像:

docker pull docker.n8n.io/n8nio/n8n:latest

4、生产环境建议

后台运行(生产环境):如果不需要交互模式,可以去掉 -it 改用 -d(守护进程模式):

docker run -d --restart unless-stopped 
    --name n8n 
    --dns 8.8.8.8 
    -e GENERIC_TIMEZONE=Asia/Shanghai 
    -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true 
    -e N8N_RUNNERS_ENABLED=true 
    -p 5678:5678 
    -v n8n_data:/home/node/.n8n 
    docker.n8n.io/n8nio/n8n

5、配置中文界面

很多人说看不习惯英文,想要中文界面,这里给出详细的步骤,以docker为例,使用开源项目,这个项目会自动根据n8n 的更新而翻译。
第一步,直接去 https://github.com/other-blowsnow/n8n-i18n-chinese/releases

在release界面下载对应版本的包,它通过挂载本地汉化后的 UI 文件来替换默认的英文界面。
https://github.com/other-blowsnow/n8n-i18n-chinese/releases

下载解压:
image.png

设置语言环境变量

N8N_DEFAULT_LOCALE=zh-CN

替换editor-ui包,去release里面找到对应的版本然后映射docker路径

/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist

完整测试docker命令

docker run -it --rm --name n8ntest 
-p 15678:5678 
-v 【替换自己的目录】:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist 
-e N8N_DEFAULT_LOCALE=zh-CN 
-e N8N_SECURE_COOKIE=false 
n8nio/n8n

(1)停止并删除旧容器

docker stop n8n && docker rm n8n

(2) 重新运行容器并挂载汉化文件
路径地址为:

/Users/jackfeng/tools/server/dist

原理 editor-ui是支持i18的,但是未开放语言包,手动添加 zh-CN.json 到 editor-ui i18n里面,然后重新编译,环境里面设置语言即可正常使用中文

docker run -d --restart unless-stopped 
    --name n8n 
    --dns 8.8.8.8 
    -e GENERIC_TIMEZONE=Asia/Shanghai 
    -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true 
    -e N8N_RUNNERS_ENABLED=true 
    -p 5678:5678 
    -v n8n_data:/home/node/.n8n 
    -v /Users/jackfeng/tools/server/dist:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist 
    -e N8N_DEFAULT_LOCALE=zh-CN 
    -e N8N_SECURE_COOKIE=false 
    docker.n8n.io/n8nio/n8n

检查是否正确挂载

docker exec -it n8n cat /usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist

更新前:

更新前

更新后:

更新后

6、忘记密码?

当我们在本地部署N8N的时候,有时候会因为刚开始测试,用户名和密码设置的比较随意,所以容易忘记,当然有些朋友有google 账户密码管理工具,可以根据端口域名搜索查看对应的,那么如果你没有保存呢? 该怎么办呢?

忘记了密码是没有办法通过邮箱去找回的呢!!!

image.png

如何解决这个问题呢?

前置条件是: 在不丢失你任何工作流的情况下,带你三步重置密码。

1、查看docker名称


docker ps -a

2、用户管理重置命令

docker exec n8n n8n user-management:reset 
告别重复劳动!用n8n零代码实现数据分析与图表自动化,人人都是数据分析师

3、重启docker容器

docker restart n8n

当完成重启之后,我们就会进入重新初始化账户的设置界面,完成之后登录,发现我们的工作流还会存在,并不会丢失。
http://localhost:5678/setup

image.png

NoCoDB

NoCoDB (https://nocodb.com):作为“数据仓库”。它是一个开源的智能表格/无代码数据库,可以让我们像Excel这样去操作,通过网页轻松管理,也可以本地部署,可以看作是 Airtable 的强大替代品。我们将在这里存放需要分析的原始数据。
image.png

1、登入并导入数据

登录账号进入主页面,导入以这个数据为例
https://docs.google.com/spreadsheets/d/1bKhqWlNxnZWeRl0db12fd9cicFjV0nrRrcS9D1aZRCQ/edit?gid=2014366975#gid=2014366975

上传到 NocoDb上,重命名为: 工作流-手机销售数据

image.png

2、配置凭证

hots: https://app.nocodb.com/

image.png
获取token步骤,点击左下角的头像:
image.png
点击 Add new token,
image.png

输入token名字,创建成功复制即可,粘贴在配置页面,输入api-key,点击测试就可以看到如下页面了。

image.png

3、配置数据表

以工作流-手机销售数据为例, 这部分就是table的id ,配置在接口内,也就是数据表名。

image.png

id: m3n9xz13bmxvgo6 为数据表id,替换为自己的即可。

https://app.nocodb.com/api/v2/meta/tables/m3n9xz13bmxvgo6

4、安装NoCoDB

上述步骤是可以通过线上版本的,但是我们有时候是使用一些本地数据库,所以这里可以改成私有化部署的,并且自定义端口
image.png
docker run -d --name nocodb 
  -v /Users/jackfeng/opt/nocodb_file/nocodb:/usr/app/data/ 
  -p 8735:8080 
  nocodb/nocodb:latest

部署成功之后,设置管理员账号,点击登录

image.png

在这里发现和我们线上使用的完全一致,上传同样的销售数据

image.png

设置key是一致的,然后配置的凭证的时候,这里是有一点是需要注意的,因为我们现在使用的都是docker 部署,那么docker,在宿主机使用localhost+端口访问是没有问题的,如果是docker 内部之间访问就会有问题的。

使用 docker inspect(推荐)


docker inspect <容器名或ID> | grep IPAddress


# 例如
docker inspect nocodb | grep IPAddress


# 更加精确的查询,这个是直接获取ip

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器名或ID>

# 例如
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nocodb

所以,我们的配置就如下,记得换成自己的ip哦
image.png

同样,在http请求节点中,也要将url 换成本地的,这样我们的数据就是完全本地化

image.png

如果为了做更好的分析,我们可以在这 https://archive.ics.uci.edu/ 获取一些公开的数据集,以银行营销为例子

QuickChart

image.png

QuickChart (https://quickchart.io):“专属画师”。这是一个神奇的在线服务,能通过一个简单的 API 请求,将你的数据瞬间转换成精美的图表图片。

QuickChart 是一项非常实用的图表生成服务,它允许开发者通过简单的 URL 请求或 API 调用快速生成各种数据可视化图表。以下是关于 QuickChart 的详细介绍:

核心功能

  1. 1. 基于 URL 的图表生成:
    • • 通过构造特定格式的 URL 直接生成图表图片
    • • 示例:https://quickchart.io/chart?c={type:'bar',data:{labels:['Q1','Q2'],datasets:[{label:'Sales',data:[100,200]}}
  2. 2. 多种图表类型支持:
    • • 支持 Chart.js 所有图表类型:柱状图、折线图、饼图、雷达图等
    • • 兼容 Chart.js 2.x 和 3.x 版本
  3. 3. 高度可定制化:
    • • 完全支持 Chart.js 的所有配置选项
    • • 可自定义尺寸、颜色、标题、图例等

使用方式

1. 基本 URL 调用

const chartUrl = `https://quickchart.io/chart?
  width=500&
  height=300&
  c=${encodeURIComponent(JSON.stringify({
    type: 'bar',
    data: {
      labels: ['一月', '二月', '三月'],
      datasets: [{
        label: '销售额',
        data: [12000, 19000, 15000]
      }]
    }
  }))}`;

2. API 端点调用

fetch('https://quickchart.io/chart/create', {
method: 'POST',
headers: {
    'Content-Type': 'application/json'
  },
body: JSON.stringify({
    chart: {
      type: 'bar',
      data: {
        labels: ['Q1', 'Q2'],
        datasets: [{ label: 'Sales', data: [100, 200] }]
      }
    }
  })
})

主要优势

  1. 1. 无需前端代码:
    • • 后端直接生成图片URL,前端只需使用<img>标签显示
  2. 2. 轻量级解决方案:
    • • 不需要在前端引入Chart.js等大型库
  3. 3. 响应式设计:
    • • 生成的图片可自适应不同屏幕尺寸
  4. 4. 高性能:
    • • 服务端渲染,减轻客户端负担

在n8n中的典型应用

在您的工作流中,QuickChart可以这样使用:

// 在Function节点中生成图表URL
const chartConfig = {
type: 'bar',
data: {
    labels: $input.all()[0].json.labels,
    datasets: $input.all()[0].json.datasets
  },
options: {
    responsive: true,
    plugins: {
      title: {
        display: true,
        text: $input.all()[0].json.title || '默认标题'
      }
    }
  }
};

return {
chartUrl: `https://quickchart.io/chart?width=800&height=400&c=${encodeURIComponent(JSON.stringify(chartConfig))}`,
chartConfig: chartConfig
};

使用建议

  1. 1. 参数编码:
    • • 始终使用encodeURIComponent处理JSON配置
  2. 2. 错误处理:

    try {
      const response = await $axios.get(chartUrl);
      if (response.status !== 200) throw new Error('图表生成失败');
    } catch (error) {
      return { error: error.message };
    }
  3. 3. 缓存策略:
    • • 对相同配置的图表URL进行缓存,减少API调用

QuickChart是将数据可视化快速集成到应用中的理想选择,特别适合需要简单、高效图表生成解决方案的场景。

全自动-数据分析工作流

image.png

主节点说明

工作流概述

本工作流是一个智能数据分析系统,通过自然语言接口接收用户查询,连接 NocoDB 数据库获取数据,使用 AI 进行分析并生成可视化图表。工作流主要包含以下功能模块:

  1. 1. 聊天消息接收与处理
  2. 2. NocoDB 数据查询
  3. 3. AI 数据分析
  4. 4. 图表生成与展示
  5. 5. 对话上下文记忆管理
image.png

1. 触发节点 - When chat message received

  • • 类型: @n8n/n8n-nodes-langchain.chatTrigger
  • • 功能: 接收用户通过聊天界面发送的消息
  • • 输出:
    • • sessionId: 会话ID,用于跟踪对话上下文
    • • chatInput: 用户输入的查询内容
  • • Webhook ID: data-analysis-chat-webhook

2. NocoDB API 请求节点

  • • 类型: n8n-nodes-base.httpRequest
  • • 配置:
    • • URL: http://172.17.0.3:8080/api/v2/meta/tables/mqzjqetyh29wa80
    • • 认证方式: NocoDB API Token
  • • 功能: 查询指定NocoDB表的元数据信息

3. 字段编辑节点 - Edit Fields2

  • • 类型: n8n-nodes-base.set
  • • 功能: 格式化输入数据,准备AI分析所需字段
  • • 输出字段:
    • • sessionId: 从触发节点传递
    • • chatInput: 用户查询内容
    • • columns: 从NocoDB表元数据中提取的列名列表

4. AI 代理主节点

  • • 类型: @n8n/n8n-nodes-langchain.agent
  • • AI模型: Google Gemini
  • • 系统提示:
    • • 角色: 专业数据分析专家
    • • 任务:
      1. 1. 理解用户请求并查询NocoDB数据
      2. 2. 分析数据并提供简明结论
      3. 3. 按需生成可视化图表
    • • 图表要求: 使用Chart.js规范格式
    • • 响应格式: 文本分析+Markdown格式图表

5. 上下文记忆节点

  • • 类型: @n8n/n8n-nodes-langchain.memoryBufferWindow
  • • 配置:
    • • 会话ID: 使用自定义键sessionId
    • • 上下文窗口长度: 20
  • • 功能: 维护对话历史,实现多轮对话上下文理解

6. 图表生成工具节点

  • • 类型: @n8n/n8n-nodes-langchain.toolWorkflow
  • • 配置:
    • • 工作流ID: xuxNSLsB405waaHt
    • • 错误处理: 继续常规输出
  • • 功能: 调用子工作流生成图表
  • • 输入要求: 符合Chart.js规范的JSON配置

7. NocoDB数据查询工具节点

  • • 类型: n8n-nodes-base.nocoDbTool
  • • 配置:
    • • 操作类型: getAll
    • • 工作区ID: 动态从API请求节点获取
    • • 项目ID: p1iq7bz903349t5
    • • 表名: mqzjqetyh29wa80
  • • 功能: 查询NocoDB表中的实际数据

8. 数据流说明

  1. 1. 用户输入阶段:
    • • 用户发送消息 → 触发When chat message received节点
    • • 查询表结构 → NocoDB API Request节点
    • • 格式化输入 → Edit Fields2节点
  2. 2. AI分析阶段:
    • • 主AI代理接收格式化后的输入
    • • 根据需要使用Get many rows in NocoDB工具查询实际数据
    • • 如需图表,调用Generate Chart工具
  3. 3. 输出阶段:
    • • AI代理组合分析文本和图表URL
    • • 返回Markdown格式的响应

子节点说明

工作流概述

这个子工作流专门用于生成符合 Chart.js 规范的图表配置,并将配置转换为 QuickChart 可用的 URL。工作流接收来自主工作流的图表生成请求,通过 AI 生成规范的图表配置,最后输出可直接使用的图表 URL。

image.png

1. 触发节点 - When Executed by Another Workflow

  • • 类型: n8n-nodes-base.executeWorkflowTrigger
  • • 功能: 作为子工作流的入口点,接收来自主工作流的调用
  • • 输入来源: passthrough (直接传递主工作流的输入)
  • • 预期输入:

    {
      "query": "用户关于图表的自然语言描述"
    }

2. AI 图表生成代理 - AI Agent Chart Generator

  • • 类型: @n8n/n8n-nodes-langchain.agent
  • • AI模型: Google Gemini
  • • 关键配置:
    • • 系统提示: 严格要求AI输出符合特定JSON格式的Chart.js配置
    • • 重试机制: 启用retryOnFail自动重试失败请求
  • • 输出要求:
    • • 必须包含type、data和options三个顶级字段
    • • 完全遵循Chart.js配置规范
    • • 不包含任何额外解释文本

3. 结构化输出解析器 - Structured Output Parser

  • • 类型: @n8n/n8n-nodes-langchain.outputParserStructured
  • • 功能: 验证和规范AI输出的图表配置
  • • Schema配置:
    • • 严格模式: 启用(strict: true)
    • • 图表类型: 限定9种Chart.js支持的图表类型
    • • 数据结构:
      • • 必须包含labels数组和datasets数组
      • • 每个dataset必须包含label、data等必需字段
    • • 选项配置:
      • • 必须包含scales和plugins配置
      • • 支持响应式、动画等高级配置

4. Google Gemini 模型

  • • 类型: @n8n/n8n-nodes-langchain.lmChatGoogleGemini
  • • 模型版本: gemini-2.5-flash-preview-05-20
  • • 功能: 为AI代理提供语言模型支持
  • • 认证: 使用预配置的Google Gemini API凭证

5. JSON验证与图表URL生成

  • • 类型: n8n-nodes-base.code
  • • 功能:
    1. 1. 验证输入的图表配置是否符合要求
    2. 2. 将配置转换为QuickChart可用的URL
  • • 代码逻辑:

    // 验证配置完整性
    if (!chartConfig || !chartConfig.type || !chartConfig.data) {
    thrownewError("无效的图表配置");
    }
    
    // 生成QuickChart URL
    const chartUrl = "https://quickchart.io/chart?width=850&height=420&c=" + 
    encodeURIComponent(JSON.stringify(chartConfig));
    
    return {
    json: {
        chartUrl: chartUrl,
        originalConfig: chartConfig
      }
    };

数据流说明

  1. 1. 输入阶段:
    • • 主工作流通过Execute Workflow节点调用本工作流
    • • 传递包含用户图表描述的参数query
  2. 2. 图表生成阶段:
    • • AI代理根据用户描述生成图表配置
    • • 结构化输出解析器验证配置格式
    • • 如不符合要求,AI代理会自动重试
  3. 3. 输出处理阶段:
    • • 代码节点验证配置完整性
    • • 将有效配置转换为QuickChart URL
    • • 返回包含URL和原始配置的对象

错误处理机制

  1. 1. AI生成失败:
    • • 通过retryOnFail自动重试
    • • 结构化解析器会捕捉格式错误
  2. 2. 配置验证失败:
    • • 代码节点会抛出明确错误信息
    • • 错误会传递回主工作流处理
  3. 3. URL生成失败:
    • • encodeURIComponent处理特殊字符
    • • JSON.stringify确保有效序列化

输出规范

成功执行后,工作流将输出:

{
  "chartUrl": "https://quickchart.io/chart?width=850&height=420&c=%7B%22type%22%3A%22...",
  "originalConfig": {
    "type": "bar",
    "data": {...},
    "options": {...}
  }
}

子工作流设计为高度可重用组件,可与任何需要图表生成功能的工作流集成,确保输出的图表配置符合专业标准且可直接用于QuickChart服务。

生成完整的数据报告

最后,可以在会话框中输入我们想提问的问题,生成带图表的报告!!!
告别重复劳动!用n8n零代码实现数据分析与图表自动化,人人都是数据分析师
告别重复劳动!用n8n零代码实现数据分析与图表自动化,人人都是数据分析师

本篇文章来源于微信公众号: DataScience

标签: Docker n8n N8N部署 图表自动化 工作流 数据分析
最后更新:2025-07-20

苏森

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
最新 热点 随机
最新 热点 随机
我替你们试过了,这才是Nano Banana在国内最爽的玩法 即梦AI图片、视频无水印保存教程:跟即梦水印说再见吧!亲测有效,上手超简单。 生成图片有水印怎么办?豆包最新无水印图片保存技巧(手机/网页端) 90%的人都不知道,这套提示词公式,让我AI生成的画面准确率提升5倍 1小时用AI工具搞定一支《浪浪山》风格茶饮广告片 别人花一周爬数据,我用Crawlee只花了十分钟! 保姆级n8n教程来了:手把手教你打造一个AI生成内容并自动发布公众号的工作流 一线中小学教师的10个豆包AI教学指令公式+实操示例
用AI工具快速生成在线教育课程动画视频20条作品涨粉17万!用AI做《道德经》解世间惑,橱窗书籍带货猛猛出单使用Coze工作流打造公众号写作神器!AI对标二创文案→自动分段配图→同步公众号后台草稿,全流程自动化!AI工作流批量生成视频,15分钟复刻百万爆款 | 生财超级术n8n实战:5分钟搞定小红书图文笔记工作流发现一款宝藏AI工具:用 Markdown 一键生成朋友圈海报,开源免费还能自定义!百度发布新AI工具 GenFlow 2.0:上百个AI助手一起干活,几分钟搞定复杂事2小时,快捷指令+n8n工作流,碾压一切笔记应用
Dify工作流实践:从文档生成思维导图 全网采集神器来了!零逆向、全平台、一键搞定——让数据自己乖乖过来 手把手教你从0搭建一个智能体,全部跟下来你就Agent入门了!(超详细的讲解) 自媒体人必看!这套AI系统让我彻底告别手动操作:24小时全自动运行实录 拆解爆款—历史人物智能体:提示词+代码全公开,0 基础也能用扣子AI复刻爆款! 1小时用AI工具搞定一支《浪浪山》风格茶饮广告片 重磅!飞书+coze怎解决电商批量出图的场景需求,保姆级教程快来看看吧 抖音创始团队成员,做了一个AI创意的造物平台|涌现NewThings
标签聚合
nano-banana DeepSeek ChatGPT 智能体 扣子 提示词 小红书 Agent 工作流 飞书 豆包 Dify coze n8n Prompt Gemini

COPYRIGHT © 2025 苏森AI SOOSON.COM. ALL RIGHTS RESERVED.

站点地图