zoukankan      html  css  js  c++  java
  • flask 导出数据写入execl

    前言

    • 导出数据写入ececl的方法有很多种,随个人喜好选择,可以采用保存文件的方式,也可以采用流方式。
    • 重点在于要更改响应头类型使其支持中文名称输出

    代码实现

    @api.route('/download')
    def download():
        data = Case.query.filter_by().all()
        # 创建IO对象
        output = BytesIO()
        # 写excel
        workbook = xlsxwriter.Workbook(output)  # 先创建一个book,直接写到io中
    
        sheet = workbook.add_worksheet('sheet1')
        fileds = ['用例编号', '测试项', '测试分项', '测试点', '前置条件',
                  '测试方法和步骤', '预期结果', '是否通过', '实际结果',
                  '设计日期', '结论日期', '测试人员']
    
        # 写入数据到A1一列
        sheet.write_row('A1', fileds)
    
        # 遍历有多少行数据
        for i in range(len(data)):
            # 遍历有多少列数据
            for x in range(len(fileds)):
                key = [key for key in data[i].keys()]
                sheet.write(i + 1, x, data[i][key[x]])
                log.info('当前行:{}  当前列:{}  数据:{}'.format(str(i), str(x), data[i][key[x]]))
        workbook.close()  # 需要关闭
        output.seek(0)  # 找到流的起始位置
        resp = make_response(output.getvalue())
        basename = '测试用例.xlsx'
    
        # 转码,支持中文名称
        resp.headers["Content-Disposition"] = "attachment; filename*=UTF-8''{utf_filename}".format(
            utf_filename=quote(basename.encode('utf-8'))
        )
    
        resp.headers['Content-Type'] = 'application/x-xlsx'
        return resp
    
  • 相关阅读:
    windows 系列机器查看tcp 配置
    test windows live writer
    win7 mysql 启动 问题
    用enum枚举量做下标初始化数组
    二层VXLAN静态配置
    pip install scrapy报错原文
    python练习2
    pycharm字体大小设置快捷键的方法
    python练习1
    centos 7下修改IP地址为静态
  • 原文地址:https://www.cnblogs.com/se7enjean/p/13177243.html
Copyright © 2011-2022 走看看