Excel 数据显示到网页
平时的, 数据分析过程, 会涉及很多表或者, 计算过程嘛, 有的时候, 需要将数据表啥的给同事查看和共享一下, 直接发送, 似乎不够优雅. 直接展示在网页往, 共小伙伴们查看和下载, 不就很香嘛.
其实 Excel 只是个噱头, 怎么可能用 Excel 分析数据, 不存在的, 必须是 pandas 呀. 其实就是将 DataFrame 给 渲染 到 网页而已. 而这里涉及 web, 则用下 flask, 几行代码就搞定了呀.
需求
- 将excel 表格显示在网页上
- 在局域网内能实现共享
实现
能显示网页, 能共享, 不就是一个弄个 web 就好了呀. 这里用 pandas 来读取数据, 核心是用 DataFrame 的 to_html 结合 flask 来显示网页.
展示数据以经典的 超市数据为例, 显示前50行吧, 这里只是一个简化版, 主要是为了说明思路哦.
超市数据, 是 Tableau 自带的测试数据集, Tableau 是我目前做可视化的主要工具, 就用它.
import pandas as pd
import flask
file_path = "D:/test_data/示例 - 超市.xls"
app = flask.Flask(__name__)
@app.route("/")
def show_excel():
"""将excel展示网页"""
df = pd.read_excel(file_path).head(50)
# TODO: 这里可以写对数据的处理哦
data_html = df.to_html()
return f"""
<html>
<body>
<h3>Tableau 实例的 "超市" 数据集 </h3>
</div>{data_html}</div>
</body>
</html>
"""
if __name__ == '__main__':
app.run(host='0.0.0.0') # 让其他ip也能访问
然后打开网页, 本机测一下, 输入 127.0.0.1:5000 回车即可看到网页效果. (flask 默认端口是 5000)
功能完成!
但样式有些丑, 可以尝试改下前端, 这里我就不弄了, 主要是目前不想弄前端, 调格式是真的有些烦.
小结
- 实现就是将 excel 呀 pandas 读取为 DataFrame, 然后转为 html 用 flask 作为后台.
- 核心方法是 to_html(), 再此之前可有数据处理的过程, 渲染前也可以该前端进行表格优化
- web 偶尔还是得有些许了解, 一些简单的接口还是要熟练的
耐心和恒心, 总会获得回报的.