tornadoエクスポートデータはexcel


import io
import time
import xlwt


def set_worksheet():
    workbook = xlwt.Workbook(encoding="utf-8")
    worksheet = workbook.add_sheet("    ")
    worksheet.write(0, 0, label="   ")
    worksheet.write(0, 1, label="    ")
    worksheet.write(0, 2, label="  ")
    worksheet.write(0, 3, label="    ")
    worksheet.col(0).width = 5000
    worksheet.col(1).width = 4000
    worksheet.col(2).width = 5000
    worksheet.col(3).width = 4000
    return workbook, worksheet


class ExportOrderHandler(BaseHandler):
    async def get(self):
        workbook, worksheet = set_worksheet()
        order_list = []  #     
        key_map = {
            0: "order_no",
            1: "order_type",
            2: "money",
            3: "create_at",
        }
        for index, item in enumerate(order_list):
            for col in range(len(key_map.keys())):
                worksheet.write(index + 1, col, label=item.get(key_map.get(col)))
        sio = io.BytesIO()
        workbook.save(sio)
        #     window.url()        url,    
        self.set_header('Content-Type', 'application/x-xls')
        self.set_header('Content-Disposition',
                        'attachment; filename={}.xls'.format(time.strftime('%Y%m%d%H%M%S')))
        self.write(sio.getvalue())