Python 使用xlsxwriter对数组中的数据,不需要过多的处理,直接进行导出为excel

Python 使用xlsxwriter进行文件导出

再写个excel导出,以xlswriter为例,适用与新手学习,仅供参考。

import xlsxwriter
import uuid

class ExcelClass:

    def __init__(self, filePath=None ):
        self.workbook_data = None
        self.work_sheet_data = None
        if filePath is None:
            filePath = os.getcwd()
        self.filePath = filePath

    def print_excel(self, sheetName = 'Sheet1', dataList=None, titleStyle=None, bodyStyle = None, title_fields = None, fileName = None):

        if fileName is None:
            fileName = uuid.uuid4()

        self.workbook_data = xlsxwriter.Workbook(str(self.filePath) + "/" + str(fileName) + ".xlsx")
        if dataList is None:
            dataList = []
        if len(sheetName):
            self.work_sheet_data = self.workbook_data.add_worksheet(sheetName)
        else:
            self.work_sheet_data = self.workbook_data.add_worksheet()
        if titleStyle is None:
            titleStyle = {'fg_color': '#b5b5b5', 'border': 1}
        title_back = self.workbook_data.add_format(titleStyle)
        count = 0
        # 填充标题
        for attr in dataList[0]:
            if title_fields is not None:
                title_field = title_fields[title_back]
                if title_field is None:
                    title_field = title_back
                self.work_sheet_data.write(0, count, attr, title_field)
            else:
                self.work_sheet_data.write(0, count, attr, title_back)
            count += 1
        if bodyStyle is None:
            bodyStyle = {'border': 1}
        title_back = self.workbook_data.add_format(bodyStyle)
        # 填充内容
        for i, data in enumerate(dataList):
            count = 0
            for attr in data:
                value = data[attr]
                self.work_sheet_data.write(i+1, count, value, title_back)
                count += 1
        return self

    def close(self):
        self.workbook_data.close()

调用方式也很简单,

from 你对应的文件位置 import ExcelClass
# 数据对象输出到excel
# excel
excel = ExcelClass()
# 数据格式 类似这种,可以使用中文,要保证第一个对象的属性是全的[{'name':'张三','age':25}{'name':'张李四','age':20}]
excel.print_excel(dataList=message)
# 别忘了关闭流
excel.close()

参考上个文章mysql的,可以直接把查询出的数据直接输出到excel中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值