Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)
创作时间:
作者:
@小白创作中心
Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)
引用
CSDN
1.
https://blog.csdn.net/Dontla/article/details/146008305
本文将详细介绍如何使用Dify和DeepSeek工具实现Excel数据的一键可视化功能。通过创建Chatflow工作流,用户可以将Excel数据转换为CSV格式,并自动生成ECharts图表配置,最终实现数据的可视化展示。
创建步骤
点击创建Chatflow
echart助手
删除已有节点
选中按Del:
创建上传文件节点
点击“开始”,创建输入字段text(文件路径或url)
创建文档提取器
添加text字段输入:
为文档提取器输出创建Excel转csv节点
新建节点
模型我选择deepseek-reasoner
按照以下格式填入prompt(输入数据选择文档提取器/(x)text)
#角色
你是一个数据整理专家,删除数据格式的整理和格式的转换。
#数据
囚 文档提取器/(x)text
#任务
将数据转换成csv格式
修改节点名称为Excel转csv
为Excel转csv节点创建参数提取器节点
新建节点
设置指令
#任务
-提取csv格式的字符串
设置模型
设置输入变量
添加提取参数csv_data
为参数提取器节点创建代码执行节点
新建节点
代码填入
import csv
import json
def main(csv_data):
# 解析CSV
reader = csv.DictReader(csv_data.strip().splitlines())
rows = list(reader)
# 自动识别列结构
headers = reader.fieldnames
if not headers or len(headers) < 2:
return {'output': 'Error: 需要至少两列数据(1个分类列+1个数值列)'}
# 默认第一列为分类轴,其余为数值列
category_col = headers[0]
value_columns = headers[1:]
# 提取数据
categories = [row[category_col] for row in rows]
series_data = [
{
"name": col,
"type": "bar",
"data": [float(row[col]) for row in rows] # 处理浮点数
} for col in value_columns
]
# 构建ECharts配置
echarts_config = {
"xAxis": {"type": "category", "data": categories},
"yAxis": {"type": "value"},
"series": series_data
}
# 返回结果
return {'output': f'```echarts\n{json.dumps(echarts_config, ensure_ascii=False)}\n```'}
代码解释
以下是对该代码的详细技术解析:
- 流程架构:
- 输入:接收CSV格式的原始字符串数据
- 处理:通过三层转换 pipeline:
CSV文本 → Python字典结构 → ECharts JSON配置 → Markdown代码块封装 - 输出:符合Markdown扩展语法规范的ECharts图表代码块
- 核心算法:
- 列智能识别算法:采用启发式规则
if len(headers) >=2: 第一列 = 分类轴 后续列 = 数值系列 else: 触发错误处理 - 类型强制转换:
float(row[col])
实现字符串到数值的类型安全转换
- ECharts配置生成:
- 生成符合Apache ECharts v5+规范的配置结构
- 动态构建坐标系:
- X轴:自动映射分类维度
- Y轴:自动推断为数值轴
- 系列数据采用bar(柱状图)可视化编码
- 异常处理边界:
- 列数校验:强制要求至少包含2列数据
- 浮点转换:假设所有数值列均可转换为float类型(需注意潜在TypeError风险)
- 运维增强特性:
- 输入数据规范化:通过strip().splitlines()处理不同平台的换行符差异
- Unicode安全:ensure_ascii=False确保中文等字符正确显示
- 结构化错误消息:返回标准字典格式,方便日志采集和监控
该代码特别适用于运维监控场景下的自动化报表生成,可将Zabbix、Prometheus等监控系统导出的CSV指标数据快速转换为可交互的可视化图表。
为执行代码节点添加直接回复节点
创建节点
输入直接回复内容(注意我修改了部分变量名,可能跟前面不兼容)
filePath:
{{#1741057279322.filePath#}}
</br>
文档提取器text:
{{#1741058246976.text#}}
</br>
Excel转csv, csv text:
{{#1741058730753.text#}}
</br>
参数提取器csv_data:
{{#1741065751183.csv_data#}}
</br>
代码执行output:
{{#1741082638678.output#}}
节点测试(无效)
测试文档提取器(Excel转csv失败了,改成Markdown转csv)
运行
我的dify见鬼了,提取excel都是空的
只能修改方案了,将后面的Excel转csv改成Markdown转csv
不过提示词貌似都不用改。
测试提取markdown(没有问题)
测试运行
点击预览,然后上传文件
在聊天框随便输入内容然后发送
然后工作流就会逐个运行,最后输出结果
点开右边工作流节点,能看到各个节点输入输出,方便调试
热门推荐
普通人有必要补充叶黄素吗?
PID的含义及查看方法(macOS系统和Windows系统)
中国物流行业深度研究报告:产业链、政策背景、竞争格局与发展趋势
四川大学华西团队揭秘:乙酸通过脑-肠轴调节睡眠质量的新机制
哪一项传统武术项目入选了人类非物质文化遗产代表作名录?
提升沟通技巧:让说话成为连接彼我的桥梁
如何正确提交员工离职单?
色盲的治疗方法有哪些
深入解析形成性考核,如何通过持续反馈提升学习效果
效率翻倍,如何使用Google高级搜索
用AI打造高效MVP,你也可以!
广州这些避世的小众艺术空间,一点不输公立美术馆
失眠用药「思诺思」冲上热搜,医生表示:治疗失眠还有多种方法
人事行政工作流程中哪些环节可以自动化?
深圳能待一整天的10个免费室内场馆!
春节必备年糕:从北到南,各地都有自己的独特风味
如何写出令人感动的文字,跟朱自清学写作
老年人头晕的六大原因及应对指南
起名如何讲究声音韵律
“微醺”才能有灵感?追寻“学术酒吧”起源
《阿凡达2》热映,影院如何用票房数据优化排片?
普通人如何从零开始学习AI?
分析师:比特币图表显示未来几周可能出现“决定性价格波动”
科学增肌全攻略:从计划到执行,打造完美体态
B端系统:优秀反馈机制设计,让用户爽到爆的秘诀
考取焊工证:就业与前景的双重优势
情侣间如何重拾信任?
健康科普丨癌症患者出现水肿怎么办?这些方法要记好!
2025年海外科技行业分析:AI浪潮下的产业变革与投资机遇
电磁能量像核爆,中国正在研制高功率微波武器,能颠覆战争格局