python xlsxwriter 在

发布时间:2019-09-16 07:40:47编辑:auto阅读(1704)

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

    1. 在内存中生成数据,不用临时文件

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

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


    1. 在内存中生成数据,不用临时文件

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

    使用StringIO可以达到目的


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

    workbook.close()
    output.seek(0)
    return send_file(output, mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", as_p_w_upload=True, p_w_upload_filename='file.xlsx')

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


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

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


    Happy coding to you (^_^)

关键字