这是一个使用 Python 和 Streamlit 构建的交互式Web应用程序,旨在将自动化任务的计划可视化为一个功能强大的甘特图仪表盘。
与简单的图表生成不同,本项目提供了一个完整的Web界面,允许用户直接在浏览器中实时编辑任务数据,并一键将修改保存回源文件。
因为我的需求只需要时间范围为一天以内,故未对跨日期进行测试。
- Web应用界面: 无需运行零散的脚本,通过一个命令启动一个完整的Web服务。
- 实时编辑与预览: 在网页上提供一个类似Excel的表格,对任务数据的任何修改(增、删、改)都会即时反映在下方的甘特图上。
- 保存更改: 在侧边栏提供“保存”按钮,可以将网页上做的所有修改持久化写回
tasks.csv文件。 - 智能分类: 自动根据“运行机器人”字段对任务进行颜色编码,并生成图例。
- X轴独立缩放: 支持锁定Y轴,仅对时间轴(X轴)进行拉伸缩放,便于查看分钟级任务细节。
- 时间范围滑块: 在图表下方提供一个便捷的时间范围选择滑块,用于快速导航和筛选时间区间。
- Python 3.7+ (测试版本为3.7)
- 关键库: Streamlit, Pandas, Plotly
-
准备数据文件: 确保项目目录下有一个名为
tasks.csv的文件,该文件必须包含以下四列:Task,Start,Finish,Bot。Task: 任务的唯一名称(字符串)。Start: 任务的开始时间,格式为HH:MM:SS。Finish: 任务的结束时间,格式为HH:MM:SS。Bot: 执行该任务的机器人或服务名称,用于颜色分类(字符串)。- 日期如果为空,则默认为当日日期 文件示例:
Task,Start,Finish,Bot 数据同步#1,2025-10-22 09:08:00,2025-10-22 09:25:00,机器人A 日志分析#1,2025-10-22 09:01:00,2025-10-22 10:11:00,数据中心服务 ... -
启动Web应用: 打开终端后使用
streamlit run命令启动应用:streamlit run create_gantt.py
-
在浏览器中操作:
- 命令运行后,浏览器会自动打开一个新的标签页(通常是
http://localhost:8501)。 - 在页面的数据编辑区,可以像操作Excel表格一样修改、添加或删除任务。
- 下方的甘特图会实时更新以反映数据的改动。
- 完成所有编辑后,点击页面左侧边栏的“保存更改”按钮,即可将所有变动写入
tasks.csv文件。
- 命令运行后,浏览器会自动打开一个新的标签页(通常是
-
停止应用: 在终端按下
Ctrl + C即可停止Web服务。
应用的核心功能:上方是可直接编辑的数据表格,下方是实时同步更新的甘特图。
展示所有任务的分布情况,并通过颜色区分不同机器人。当任务数量多时,可上下滚动页面。
拉长时间轴查看特定时间段内的任务细节,而Y轴的任务列表保持固定。


