Python生成Excel文件需要先安装第三方库xlwt或xlsxwriter
1. xlwt库
第三方库函数介绍:
- 创建工作簿(workbook):
workbook = xlwt.Workbook()
- 创建工作表(sheet)
sheet = workbook.add_sheet("Sheet Name")
- 写单元格(cell):
sheet.write(0, 0, 'foobar') # row, column, value
- 对单元格应用样式(加粗为例):
style = xlwt.easyxf('font: bold 1')
sheet.write(0, 0, 'foobar', style)
- 设置列宽:
sheet.col(0).width = 256 * (len(key) + 1)
- 保存:
workbook.save("foobar.xls")
代码示例:
# -*- coding: utf-8 -*-
import os
import xlwt
class XlsReport:
# '''Excel报告接口'''
def __init__(self,file_path):
self.xls_workbook = None #创建的Excel对象
self.xls_file_path = file_path #创建Excel的文件路径
self.xls_worksheets = {} #工作表的行列标记符{worksheet对象:{r:行,c:列}}
self.xls_sheet_col_length = {} #工作表的列宽{worksheet对象:{列1:宽度,列2:宽度...}}
def xlsOpenWorkbook(self):
'''创建一个Excel'''
self.xls_workbook = xlwt.Workbook()
def xlsAddWorksheet(self,sheet_name='sheet',r=0,c=0):
'''
创建一个工作表对象
@parameter sheet_name:工作簿名称
@parameter r:工作表的行
@parameter c:工作表的列
'''
obj_worksheet = self.xls_workbook.add_sheet(sheet_name) #创建工作表对象
xls_worksheet = {} #工作表的行列标记符
xls_worksheet['r'] = r #行标记符
xls_worksheet['c'] = c #列标记符
self.xls_worksheets[obj_worksheet] = xls_worksheet
self.xls_sheet_col_length[obj_worksheet] = {}
return obj_worksheet
def xlsCloseWorkbook(self,obj_worksheet):
'''
关闭Excel文件对象,保存Excel数据
@parameter obj_worksheet:工作表对象
'''
#设置工作簿的列宽
for c in self.xls_sheet_col_length[obj_worksheet]:
if self.xls_sheet_col_length[obj_worksheet][c] < 10:
obj_worksheet.col(c).width = 256*10
elif self.xls_sheet_col_length[obj_worksheet][c] > 50:
obj_worksheet.col(c).width = 256*50
else:
obj_worksheet.col(c).width = 256*(self.xls_sheet_col_length[obj_worksheet][c])
#关闭工作表对象
self.xls_workbook.save(self.xls_file_path)
def addWorksheetTitle(self,obj_worksheet,titles=[],r=0,c=0):
'''
添加工作簿的标题
@parameter obj_worksheet:工作表对象