Flask后端实践 连载十三 Flask输出Excel报表

发布时间: 2020-05-23 更新时间: 2021-11-28

Flask后端实践 Flask,Python,Excel 4.70 K 4 分钟 171

Flask后端实践 连载十三 Flask输出Excel报表

tips:

  • 简单实现Flask输出Excel报表
  • 本文基于python3编写
  • 代码仓库

项目场景

由于项目是工程上的使用,不仅需要对采集的数据进行分析,也需要输出报表,使用程序输出报表极大的简化了报表制作流程。

Python处理Excel的包

  1. openpyxl

    用于读取和写入Excel 2010文件的推荐包(即:.xlsx)。文档地址

  2. xlsxwriter

    用于编写数据,格式化信息,特别是Excel 2010格式的图表的替代软件包(即:.xlsx)。文档地址

  3. xlrd

    此包用于从旧的Excel文件中读取数据和格式信息(即:.xls)。文档地址

  4. xlwt

    此包用于将数据和格式信息写入旧的Excel文件(即:.xls)。文档地址

  5. xlutils

    该软件包收集需要xlrd和xlwt的实用程序,包括复制,修改或过滤现有excel文件的功能。一般来说,openpyxl现在涵盖了这些用例!文档地址

xlsxwriter简单使用

项目上所需的报表,图表比较多,且比较复杂。所有就采用了绘图方面更加完善的xlsxwriter

  1. 安装pip install xlsxwriter
  2. 简单使用,更多详细内容请看官方文档
    import xlsxwriter # 新建excel文本 workbook = xlsxwriter.Workbook("test.xlsx") # 添加一个sheet worksheet = workbook.add_worksheet("test1") # 设置列宽 worksheet.set_column('A:A', 20) # 添加字体加粗样式 bold = workbook.add_format({'bold': True}) # 写入数据 worksheet.write('A1', 'Hello') # 写入数据并使用样子 worksheet.write('A2', 'World', bold) # 使用数字标识单元格位置(行,列) worksheet.write(2, 0, 123) worksheet.write(3, 0, 123.456) # 按行依次写入数据 worksheet.write_column(4, 0, [1, 2, 3, 4]) # 按列依次写入数据 worksheet.write_row(1, 1, [1, 2, 3, 4]) # 添加图表 chart = workbook.add_chart({'type': 'column'}) # 图表数据来源 chart.add_series({'values': ["test1", # worksheet的名字。即sheet_name 4, 0, 7, 0 # 数据位置 ]}) # 插入的表格位置 worksheet.insert_chart('B3', chart) # 关闭excel文本并输出到指定位置。如果不调用改方法,无法输出excel workbook.close()

Flask结合xlsxwriter使用

  • 测试代码

    import xlsxwriter from flask import Flask def write(): path = "test.xlsx" # 新建excel文本 workbook = xlsxwriter.Workbook(path) # 添加一个sheet worksheet = workbook.add_worksheet("test1") # 设置列宽 worksheet.set_column('A:A', 20) # 添加字体加粗样式 bold = workbook.add_format({'bold': True}) # 写入数据 worksheet.write('A1', 'Hello') # 写入数据并使用样子 worksheet.write('A2', 'World', bold) # 使用数字标识单元格位置(行,列) worksheet.write(2, 0, 123) worksheet.write(3, 0, 123.456) # 按行依次写入数据 worksheet.write_column(4, 0, [1, 2, 3, 4]) # 按列依次写入数据 worksheet.write_row(1, 1, [1, 2, 3, 4]) # 添加图表 chart = workbook.add_chart({'type': 'column'}) # 图表数据来源 chart.add_series({'values': ["test1", # worksheet的名字。即sheet_name 4, 0, 7, 0 # 数据位置 ]}) # 插入的表格位置 worksheet.insert_chart('B3', chart) # 关闭excel文本并输出到指定位置。如果不调用改方法,无法输出excel workbook.close() return path app = Flask(__name__) @app.route('/testExcel', methods=["GET"]) def test_excel(): """ 测试输出excel :return: """ path = write() return path if __name__ == '__main__': app.run()
  • 启动app,访问http://127.0.0.1:5000/testExcel 返回生成路径test.xlsx。然后配合nginx转发即可下载文件

总结

  • 本篇文章简单介绍了xlsxwriter的使用,具体的使用场景应该与项目需求相结合。
  • 下一篇将介绍Flask输出Word报表
end
如果你觉得还不错的话,请我吃个午饭吧!😍
支付宝
支付宝
微信
微信
目录

Copyright © 2019-2020 qzq版权所有

蜀ICP备19012274号-1 | 管理