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 偶尔还是得有些许了解, 一些简单的接口还是要熟练的
posted @ 2020-03-06 20:24  致于数据科学家的小陈  阅读(3384)  评论(0编辑  收藏  举报