python3生成Excel报告

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:工作表对象
   

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值