flask连接mysql导出excel表格在客户端提供提供下载功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了flask连接mysql导出excel表格在客户端提供提供下载功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2058字,纯文字阅读大概需要3分钟。
内容图文
![flask连接mysql导出excel表格在客户端提供提供下载功能](/upload/InfoBanner/zyjiaocheng/527/5c6a820100284691bd0df660e658ec88.jpg)
flask连接mysql导出excel表格在客户端提供提供下载功能
xlwt
? 可以实现指定表单、指定单元格的写入。支持excel03版到excel2013版,保存的格式只支持xls格式,07以后的版本xlsx不支持。
StringIO
? 很多时候,数据读写不一定是文件,也可以在内存中读写。StringIO顾名思义就是在内存中读写str。
要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可
BytesIO
? StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes
flask连接mysql导出excel
from flask import Flask, make_response,render_template
import pymysql
from io import BytesIO
import xlwt
db = pymysql.connect(host=‘127.0.0.1‘, port=3306, user=‘root‘, passwd=‘123‘, db=‘test1‘, charset=‘utf8‘)
def db_data():
sql = ‘select * from user;‘
cc = db.cursor() # 创建游标
cc.execute(sql) # 执行sql语句
return cc.fetchall() # 返回查到所有的数据
app = Flask(__name__)
@app.route(‘/‘)
def index():
return render_template(‘user.html‘)
@app.route(‘/download‘)
def download_data():
ret = db_data()
wb = xlwt.Workbook(encoding=‘utf-8‘) # 实例化
ws = wb.add_sheet(‘res‘, cell_overwrite_ok=True) # Workbook的方法,生成res.xls的文件
row = [‘id‘, ‘name‘]
for i in range(0, len(row)):
ws.write(0, i, row[i]) # 将这些字段写入res.xls文件
k = 1
for i in ret:
for j in range(len(row)): # 在每列添加数据
ws.write(k, j, i[j])
k += 1
sio = BytesIO() # 将获取的数据在内存中写
wb.save(sio) # 将文件流保存
sio.seek(0) # 光标
response = make_response(sio.getvalue())
response.headers[‘Content-type‘] = ‘application/vnd.ms-excel‘ # 指定返回数据类型
response.headers[‘Transfer-Encoding‘] = ‘chunked‘
response.headers[‘Content-Disposition‘] = ‘attachment;filename=res.xls‘ # 设定用户游览器保存的文件名
return response
if __name__ == ‘__main__‘:
app.run()
flask连接mysql导出excel表格在客户端提供提供下载功能
标签:add 生成 set value app isp 读写 ons sele
本文系统来源:https://www.cnblogs.com/douzi-m/p/13375270.html
内容总结
以上是互联网集市为您收集整理的flask连接mysql导出excel表格在客户端提供提供下载功能全部内容,希望文章能够帮你解决flask连接mysql导出excel表格在客户端提供提供下载功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。