42313 发表于 2016-2-24 08:31:46

python xlsxwriter 在 flask 中的使用

在flask web项目中添加导出excel的功能,要解决下面几个问题:


[*]在内存中生成数据,不用临时文件

[*]返回二进制数据,作为附件让客户端下载


[*]为excel单元格添加超链接、设置宽度等



[*]在内存中生成数据,不用临时文件


1
2
3
4
import xlsxwriter
import StringIO
output = StringIO.StringIO()
workbook = xlsxwriter.Workbook(output, {'in_memory': True})




使用StringIO可以达到目的

2. 返回二进制数据,作为附件让客户端下载

1
2
3
workbook.close()
output.seek(0)
return send_file(output, mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", as_attachment=True, attachment_filename='file.xlsx')




几个关键点:注意close() 不然数据好像不会flush到output中;用flask.send_file

3. 为excel单元格添加超链接、设置宽度等

1
2
3
worksheet.write_row添加行
worksheet.write_url设置超链接
worksheet.set_column(4, 4, width=60)设置宽度





Happy coding to you (^_^)

页: [1]
查看完整版本: python xlsxwriter 在 flask 中的使用