数据导出生成exls,通过python的openpyexl快速生成

之前通过php生成exls数据很大的时候很慢,现在通过python修改下,快了很多

import json
import os.path
from openpyxl import Workbook

ex = []
if os.path.exists('ex.json'):
    with open('ex.json', 'r', encoding='UTF8', errors='ignore') as f:
        ex = json.loads(f.read())
        # print(f'The jsbn list:{str(ex)}')
    if len(ex) > 0:
        wb = Workbook()
        ws = wb.active
        ws.title = 'ISBN'
        rowTitle = {'A': {'name': '序号', 'width': 10}, 'B': {'name': '服务费管理单号', 'width': 20},
                    'C': {'name': '服务费订单类型', 'width': 20},
                    'D': {'name': '同步状态', 'width': 10}, 'E': {'name': '角色类型', 'width': 10},
                    'F': {'name': '推荐人', 'width': 10}, 'G': {'name': '推荐人上级角色', 'width': 15},
                    'H': {'name': '发货单号', 'width': 15}, 'I': {'name': '订单号', 'width': 15},
                    'J': {'name': '商品名称', 'width': 25}, 'K': {'name': '商品编号', 'width': 15}}
        rowTitleList = []
        for rowK, rowV in rowTitle.items():
            ws.column_dimensions[rowK].width = rowV['width']
            rowTitleList.append(rowV['name'])
        ws.append(rowTitleList)
        count = 1
        for isbn in ex:
            ws.append([count, isbn['fee_id'], isbn['fee_type'], isbn['is_sycn'], isbn['role_type'],
                       isbn['phone'], isbn['lv_name'], isbn['delivery_id'], isbn['order_id'], isbn['goods_name'],
                       isbn['goods_bn']])
            count += 1
        wb.save('isbn.xlsx')
else:
    print("The json file wasn't found!")

我尝试了w条数据,基本在几秒导出,这里没有操作数据库,直接使用json的,即使是操作mysql,在查询数据上最多消耗10秒内可以正常导出的,还是很不错的,可以尝试尝试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值