
本文介绍如何使用 python 的 pandas 库读取 excel 文件,并将其数据高效转换为 html 表格,进一步结合前端可视化库(如 chart.js)生成交互式图表,实现 excel 数据在网站上的自动化展示。
本文介绍如何使用 python 的 pandas 库读取 excel 文件,并将其数据高效转换为 html 表格,进一步结合前端可视化库(如 chart.js)生成交互式图表,实现 excel 数据在网站上的自动化展示。
在现代数据驱动的 Web 应用中,常需将 Excel 中的业务数据(如销售统计、用户反馈、库存清单等)快速发布到网页端。纯 HTML 无法直接读取 Excel 文件,而借助 Python 可构建轻量、可复用的数据管道:先用 pandas 解析 Excel,再导出结构化 HTML 表格;若需图表,则可将数据转为 JSON 格式,交由前端 JavaScript 库渲染。
✅ 基础步骤:Excel → HTML 表格
使用 pandas.read_excel() 可轻松加载 .xlsx 或 .xls 文件(需安装 openpyxl 或 xlrd 作为引擎),to_html() 方法则一键生成语义化、带样式基础的 HTML 表格代码:
import pandas as pd
# 读取 Excel 文件(支持绝对路径或相对路径)
df = pd.read_excel("data/sales_report.xlsx")
# 生成 HTML 字符串(可选参数增强可读性)
html_table = df.to_html(
index=False, # 隐藏行索引
classes="table table-striped", # 添加 CSS 类便于样式定制
table_id="excel-data-table", # 指定 ID,便于 JS 操作
na_rep="—", # 空值显示为破折号
escape=False # 允许单元格内含简单 HTML(谨慎启用)
)
# 将 HTML 写入文件或嵌入模板
with open("output/table.html", "w", encoding="utf-8") as f:
f.write(html_table)⚠️ 注意事项:
- 确保已安装依赖:pip install pandas openpyxl(.xlsx 推荐)或 pip install pandas xlrd(仅限旧版 .xls);
- 中文列名/内容需确保 Excel 文件编码为 UTF-8(Excel 默认保存通常兼容),并使用 encoding="utf-8" 打开输出文件;
- to_html() 生成的是静态 HTML 片段,不包含 等根标签,需手动嵌入完整页面模板。
? 进阶应用:Excel → 前端交互图表
若需柱状图、折线图等可视化效果,推荐“后端提供数据,前端负责渲染”的分离架构:
-
Python 后端导出 JSON 数据(替代 to_html):
# 导出为 JSON(适合 AJAX 加载) data_json = df.to_json(orient="records", force_ascii=False) # 示例输出:[{"月份":"1月","销售额":12500,"地区":"华东"}, ...] -
前端 HTML 页面引入 Chart.js 并渲染:
<canvas id="salesChart" width="400" height="200"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> fetch('/api/excel-data') // 假设后端提供 /api/excel-data 接口 .then(res => res.json()) .then(data => { const labels = data.map(row => row.月份); const values = data.map(row => row.销售额); new Chart(document.getElementById('salesChart'), { type: 'bar', data: { labels, datasets: [{ label: '销售额', data: values }] } }); }); </script>
✅ 总结
- ✅ pandas.read_excel() + to_html() 是快速生成响应式表格的首选方案,适合内部管理页或低频更新场景;
- ✅ 若需实时图表、筛选、导出等功能,建议搭配 Flask/FastAPI 提供 REST API,前端用 Chart.js + DataTables 实现专业级数据看板;
- ❌ 避免在浏览器端直接解析 Excel(如 SheetJS 虽可行,但对大文件性能差且安全性受限);
- ? 生产环境务必校验 Excel 文件来源与格式(如限定 .xlsx、检查列名白名单),防止服务端任意文件读取或内存溢出风险。
通过这一流程,Excel 不再是信息孤岛——它可成为 Web 数据看板的可靠源头,兼顾开发效率与维护可持续性。










