Python xlsxwriter模块

简介:
xlsxWriter支持多种excle功能;与excel完美兼容;写大文件,速度快且只占用很小的内存空间
不支持读或者改现有的excel文件

2.安装:

pip install xlsxwriter

3.使用示例:

import xlsxwriter

workbook = xlsxwriter.Workbook('hello.xlsx') # 建立文件
# 建立sheet, 可以work.add_worksheet('employee')来指定sheet名,但中文名会报UnicodeDecodeErro的错误
worksheet = workbook.add_worksheet() 

worksheet.write('A1', 'Hello world') # 向A1写入

workbook.close()

4.常用方法

创建工作簿

self.workbook = xlsxwriter.Workbook(self.reportpath)

添加sheet

sheet = self.workbook.add_worksheet(sheetname)

添加图标sheet

sheet=self.workbook.add_chartsheet(sheetname)

关闭工作簿

self.workbook.close()

通过sheet名称获取sheet

sheet = self.workbook.get_worksheet_by_name(sheetname)

设置单元格样式

def set_coverformat(self,font_size=14,bg_color='#FFFFFF',font_color='#000000',bordernum=1,font_name='微软雅黑'):
    '''
    设置封面单元格样式
    :param font_size: 字体大小,默认14
    :param bg_color: 背景颜色,默认白色
    :param font_color: 字体颜色,默认黑色
    :param bordernum: 边框,默认1-有边框
    :param font_name: 字体,默认微软雅黑
    :return: 单元格样式
    '''
    cover_style=self.workbook.add_format(
        {
     'align':'center','valign':'vcenter','border':bordernum,'font_size':font_size,'bg_color':bg_color,
         'font_color':font_color,'font_name':font_name})
    return cover_style
def set_cellformat(self,font_size=12,bg_color='#FFFFFF',font_color='#000000',bordernum=1,font_name='微软雅黑',text_wrap=1):
    '''
    设置单元格样式
    :param font_size: 字体大小,默认12
    :param bg_color: 背景颜色,默认白色
    :param font_color: 字体颜色,默认黑色
    :param bordernum: 边框,默认1-有边框
    :param font_name: 字体,默认微软雅黑
    :param text_wrap: 自动换行,默认1-自动换行
    :return: 单元格样式
    '''
    cell_style=self.workbook.add_format(
        {
     'align':'center','valign':'vcenter','border':bordernum,'font_size':font_size,'bg_color':bg_color,
         'font_color':font_color,'font_name':font_name,'text_wrap':text_wrap})
    return cell_style

设置单元格宽度

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def set_column_width(self,sheet,rangecell,width):
    '''
    设置指定单元格的宽度
    :param sheetname: sheet名称
    :param rangecell: 单元格范围,例如'A1:A5',单个单元格就是'A1:A1'
    :param width: 宽度
    '''
    sheet.set_column(rangecell,width)

设置行高

 def set_row_height(self,sheet,rowx,height):
        '''
        设置指定行的高度
        :param sheetname: sheet名称
        :param rowx: 行数(从0开始)
        :param height: 高度
        '''
        sheet.set_row(rowx,height)

编辑单元格

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def write_cell(self,sheet,cell,data,format):
    '''
    编辑指定sheet下的单元格
    :param sheetname: sheet名称
    :param cell: 单元格
    :param data: 写入数据
    :param format: 单元格样式
    '''
    sheet.write(cell,data,format)

合并单元格写入数据

def write_merge_range(self,sheet,rangecell,data,format):
    '''
    合并单元格并写入数据
    :param sheetname: sheet名称
    :param rangecell: 合并单元格范围,例如'D1:D7'
    :param data: 写入数据信息
    :param format: 单元格样式
    '''
    sheet.merge_range(rangecell,data,format)

设置标签颜色

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def set_sheetcolor(self,sheetname,color):
    '''
    设置sheet标签颜色
    :param sheet: sheet
    :param color: 颜色
    '''
    sheet=self.get_sheet_byname(sheetname)
    sheet.set_tab_color(color)

筛选器

def autofilter(self,sheetname):
    '''
    添加自动筛选器
    :param sheetname: sheet名称
    :return:
    '''
    sheet = self.get_sheet_byname(sheetname)
    sheet.autofilter('A1:R1')

你可能感兴趣的:(python)