码迷,mamicode.com
首页 > 编程语言 > 详细

xlwt:python的写excel模块

时间:2018-07-30 18:00:11      阅读:708      评论:0      收藏:0      [点我收藏+]

标签:sheet   导入   code   odi   xls   没有   name   xfs   form   

最近工作时碰到了将数据导出,生成一个excel表,对其中的部分数据进行统计,并给其中部分符合条件的数据添加对应的背景颜色的功能需求,于是乎,对Python中写excel的模块xlwt研究了一下,在工作过程中发现,想要实现数据统计的话,xlwt并没有直接的公式,而是给了一个把内容以公式的格式写入excel的方法,所以又对excel的公式什么的研究了一下,也算是终于实现了想要的功能,现把觉得用处比较大的记录一下,以便以后用到的时候可以直接捡起来用。

xlwt的安装

很简单,可以直接使用pip安装

pip install xlwt

xlwt的导入

很简单,直接import即可

import xlwt

最简单的例子(xltw使用的坐标和excel表的坐标不同,excel有两种坐标表示方式,但都是从1开始,例如左上角第一个单元格为A1(字母为横坐标,数字为纵坐标)或者R1C1(R1表示纵坐标,C1表示横坐标),而xlwt模块中,坐标的数字则是从0开始左上角第一个单元格的坐标为(0,0),其中的一个数字为纵坐标,第二个数字为横坐标)

import xlwt
xls = xlwt.Workbook(encoding="utf-8") # 创建一个xls对象,用来保存对excel表的操作 sheet1 = xls.add_sheet(成绩表, cell_overwrite_ok=True) # 给 xls 添加一张‘成绩表’的表格 sheet1.write(0, 0, 学生姓名) # 在坐标为0,0的单元格内添加内容‘学生姓名‘ sheet1.write(0, 1, 成绩) # 在坐标为1,1的单元格内添加内容‘成绩‘   sheet1.write(0, 2, 评语) # 在坐标为0,2的单元格内添加内容‘评语‘ xls.save(‘测试表‘) # 将xls保存为‘测试表‘

即可生成如下图如所示的excel表

技术分享图片

 设置字体属性

import xlwt
workbook = xlwt.Workbook(encoding = utf-8)
worksheet = workbook.add_sheet(测试表)
font = xlwt.Font()    #  创建一个font对象,用来保存对字体进行的操作
font.name = 微软雅黑    # 将字体设置为‘微软雅黑‘
font.bold = True    # 设置字体加粗
font.underline = True    # 设置字体加下划线
font.italic = True    # 设置字体倾斜
style = xlwt.XFStyle()    # 创建一个style对象,用来保存excel的样式
style.font = font    # 将字体信息保存到style对象中
worksheet.write(0, 0, 无字体格式)
worksheet.write(1, 0, 有字体格式, style)    # 在坐标为1,0的单元格内添加内容‘有字体格式‘,并带有字体属性
workbook.save(测试表.xlsx)

生成如下图如所示的excel表

 技术分享图片

设置背景图案

import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet(测试表)
pattern = xlwt.Pattern()    # 创建一个pattern对象,用来保存单元格背景的样式
pattern.pattern = 0x01    # 设置单元格的背景图案样式(0x01-0x12共18种样式)
pattern.pattern_fore_colour = xlwt.Style.colour_map[yellow]    # 设置单元格的背景颜色
style = xlwt.XFStyle()
style.pattern = pattern    # 将背景颜色信息保存到styke对象中
worksheet.write(0, 0, 有背景颜色, style)    # 在坐标为0,0的单元格内添加内容‘有背景‘,并带有背景颜色
workbook.save(测试表.xlsx)

生成如下图如所示的excel表

 技术分享图片

合并单元格

import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet(测试表)
worksheet.write_merge(0, 0, 0, 1, 合并两列)    # 将坐标为0,0和0,1的两列合并,并添加内容‘合并两列‘
worksheet.write_merge(1, 2, 0, 0, 合并两行)    # 将坐标为1,0和2,0的两行合并,并添加内容‘合并两行‘
worksheet.write_merge(3, 5, 0, 2, 合并三行三列)    # 将纵坐标为3-5横坐标为0-2的三行三列合并,并添加内容‘合并三行三列‘
workbook.save(测试表.xlsx)

生成如下图如所示的excel表

 技术分享图片

 设置单元格的列宽(xlwt中没有专门的设置行高的方法,可通过设置单元格的字号调整行高)(xlwt中列宽的单位为默认字体(10号字)的0的宽度的1/256)

import xlwt
book = xlwt.Workbook(encoding=utf-8)
sheet = book.add_sheet(测试表)
first_col=sheet.col(0)    # 获得测试表中横坐标为0的列
first_col.width=256*20    # 将或的的列的宽设置为256*20个单位,即20个10号字的0的宽度
book.save(测试表.xlsx)

生成如下图如所示的excel表

技术分享图片

在单元格内插入公式

import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet(测试表)
worksheet.write(0, 0, 1)
worksheet.write(0, 1, 2)
worksheet.write(0, 2, xlwt.Formula(A1*B1))    # 在坐标为0,2的单元格单元格内添加一个公式,公式内容为‘=A1*B1’,显示的值为A1与B1两单元格的值得积:2
worksheet.write(0, 3, xlwt.Formula(SUM(A1,B1)))    # 在坐标为0,3的单元格单元格内添加一个公式,公式内容为‘=SUM(A1,B1)’,显示的值为A1与B1两单元格的值得和:3
workbook.save(测试表.xlsx)

生成如下图如所示的excel表

技术分享图片

另附部分excel公式(好吧,我承认是我在工作中用到的)

统计数量(COUNTIF(区域,条件))

例子1:统计1出现的次数

技术分享图片

例子2:统计不是1的值出现的次数

技术分享图片

乘积之和(SUMPRODUCT(数组1,数组2, ··· ···)):

例子:计算数组1和数组2的对应位置的数的乘积的和

技术分享图片

条件求和(SUMIF(条件区域,判断条件,运算区域)(若省略运算区域,则条件区域即是运算区域))

例子:在A1-A6范围内值为1的单元格,在B1-B6范围内对应的单元格的值的和

技术分享图片

多条件求和(SUMIFS(运算区域,条件区域1,判断条件1,条件区域2,判断条件2,··· ···))

例子:在A1-A6范围内值为1,在B1-B6范围内值为1的单元格,在C1-C6范围内对应的单元格的值的和

技术分享图片

 

xlwt:python的写excel模块

标签:sheet   导入   code   odi   xls   没有   name   xfs   form   

原文地址:https://www.cnblogs.com/CN-S/p/6890900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!