flask导出Excel报表详解
2020-12-23 15:51 idea555 阅读(426) 评论(0) 收藏 举报在日常开发中,导出数据报表可谓必备技能,在后台管理中,很多模块都需要数据报表,现在我们一起来学习一下 flask 如何导出数据报表。
没有实例的讲解很不容易理解,本文我们依然从实际项目来讲解,对 “flask+mysql微信小程序开源项目” 进一步扩展 ,教大家以项目为驱动来学习软件开发技术 。
1、后台接口编写
flask 可以使用 xlwt 扩展插件来完成对 Excel 的操作,若你的虚拟环境中没有安装 xlwt ,执行下面命令进行安装
pip install xlwt
安装成功后,在 controller/api/api.py 头部引入 xlwt
import xlwt as xlwt
创建导出 Excel 数据报表的接口路由
# 导出数据
@api.route('exportData', methods=['POST'])
def exportData():
wb = xlwt.Workbook()
ws = wb.add_sheet('报修数据报表')
first_col = ws.col(0) # xlwt中是行和列都是从0开始计算的
second_col = ws.col(1)
third_col = ws.col(2)
four_col = ws.col(3)
five_col = ws.col(4)
first_col.width = 128 * 20
second_col.width = 230 * 20
third_col.width = 230 * 20
four_col.width = 128 * 20
five_col.width = 230 * 20
ws.write(0, 0, "报修人")
ws.write(0, 1, "联系电话")
ws.write(0, 2, "报修地点")
ws.write(0, 3, "报修描述")
ws.write(0, 4, "报修备注")
ws.write(0, 5, "报修时间")
dataw = RepairServiceSheet.query.order_by(RepairServiceSheet.id.desc()).all()
if dataw is not None:
for i in range(0, len(dataw)):
pet = dataw[i]
repairDate = ''
if pet.repairDate is not None:
repairDate = pet.repairDate.strftime('%Y-%m-%d %Z %H:%M:%S')
ws.write(i + 1, 0, pet.applicantName)
ws.write(i + 1, 1, pet.mobile)
ws.write(i + 1, 2, pet.address)
ws.write(i + 1, 3, pet.description)
ws.write(i + 1, 4, pet.remarks)
ws.write(i + 1, 5, repairDate)
now = str(time.time())
path = "/static/excel/"
fileName