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中