python中使用 xlwt 操作excel的常见方法与问题


Posted in Python onJanuary 13, 2019

前言

Python可以操作Excel的模块不止一种,我习惯使用的写入模块是xlwt(一般都是读写模块分开的)

python中使用xlwt操作excel非常方,和Java使用调框架apache poi相比这就是天堂啊,下面话不多说了,来一起看看详细的介绍吧

一.安装xlwt模块

pip3 install xlwt

二.简单使用xlwt

import xlwt #导入模块
workbook = xlwt.Workbook(encoding='utf-8') #创建workbook 对象
worksheet = workbook.add_sheet('sheet1') #创建工作表sheet
worksheet.write(0, 0, 'hello') #往表中写内容,第一各参数 行,第二个参数列,第三个参数内容
workbook.save('students.xls') #保存表为students.xls
#在Java中使用poi操作excel 在创建workbook对象的时候就需要写好表名,创建workbook对象完成后
#这个表就已经存在,但是使用xlwt 需要在最后调用保存的时候为表命名,并且只有调入save方法后才会#创建表

三.为内容设置style

workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')
#设置字体样式
font = xlwt.Font()
#字体
font.name = 'Time New Roman'
#加粗
font.bold = True
#下划线
font.underline = True
#斜体
font.italic = True

#创建style
style = xlwt.XFStyle()
style.font = font
#根据样式创建workbook
worksheet.write(0, 1, 'world', style)
workbook.save('students.xls')

四.合并单元格

使用xlwt 合并单元格时不用像poi通过style来设置,直接创建和并单元格就可以,

workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')
#通过worksheet调用merge()创建合并单元格
#第一个和第二个参数单表行合并,第三个和第四个参数列合并,

#合并第0列到第2列的单元格
worksheet.write_merge(0, 0, 0, 2, 'first merge')

#合并第1行第2行第一列的单元格
worksheet.write_merge(0, 1, 0, 0, 'first merge')

workbook.save('students.xls')

如果需要了解具体调合并单元格规则就自己试着合并,查看合并效果.才能清晰明了

五.设置单元格的对齐方式

workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')
alignment = xlwt.Alignment()
# 水平居中
alignment.horz = xlwt.Alignment.HORZ_CENTER
# 垂直居中
alignment.vert = xlwt.Alignment.VERT_CENTER
style = xlwt.XFStyle()
style.alignment = alignment
#设置单元格宽度
worksheet.col(0).width = 6666

#设置单元格的高度
worksheet.row(0).height_mismatch = True
worksheet.row(0).height = 1000

worksheet.write(0, 0, 'hello world', style)
workbook.save('center.xls')

六.设置单元格调边框

workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')
border = xlwt.Borders()
# DASHED虚线
# NO_LINE没有
# THIN实线
border.left = xlwt.Borders.THIN
# 设置颜色
border.left_coloure = 0x40b
border.right = xlwt.Borders.THIN

border.right_colour = 0x40b
border.top = xlwt.Borders.THIN

border.top_colour = 0x40b
border.bottom = xlwt.Borders.THIN

border.bottom_colour = 0x40b
style = xlwt.XFStyle()

style.borders = border
worksheet.write(0, 0, 'love', style)
workbook.save('dashed.xls')

七.设置单元格边框

workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')

border = xlwt.Borders()
# DASHED虚线
# NO_LINE没有
# THIN实线
border.left = xlwt.Borders.THIN
border.right = xlwt.Borders.THIN
border.top = xlwt.Borders.THIN
border.bottom = xlwt.Borders.THIN

style = xlwt.XFStyle()
style.borders = border
worksheet.write(1, 1, 'love', style)

workbook.save('dashed.xls')

八.设置单元格背景色

workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN

# 8 through 63
# 0 = Black, 1 = White,
# 2 = Red, 3 = Green, 4 = Blue,
# 5 = Yellow, 6 = Magenta, 7 = Cyan,
# 16 = Maroon, 17 = Dark Green,
# 18 = Dark Blue, 19 = Dark Yellow ,
# almost brown), 20 = Dark Magenta,
# 21 = Teal, 22 = Light Gray,
# 23 = Dark Gray, the list goes on...

pattern.pattern_fore_colour = 3
style = xlwt.XFStyle()
style.pattern = pattern
worksheet.write(1, 1, 'shit', style)
workbook.save('shit.xls')

九.设置字体颜色

workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')

font = xlwt.Font()
# 设置字体为红色
font.colour_index=xlwt.Style.colour_map['red']

style = xlwt.XFStyle()

style.font = font

worksheet.write(0, 1, 'world', style)
workbook.save('students.xls')

遇到的问题:

1.PermissionError: [Errno 13] Permission denied: 'dashed.xls'

原因:测试写入调时候文件被打开了,无法写入,关闭文件后再写入就ok了

2.TypeError: 'module' object is not callable

创建style的时候调错对象将

style = xlwt.Style()

改为

style = xlwt.XFStyle()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python中的内置函数getattr()介绍及示例
Jul 20 Python
在Python中操作字符串之startswith()方法的使用
May 20 Python
Python读写unicode文件的方法
Jul 10 Python
python如何实现excel数据添加到mongodb
Jul 30 Python
利用Django内置的认证视图实现用户密码重置功能详解
Nov 24 Python
dataframe设置两个条件取值的实例
Apr 12 Python
Python实现常见的回文字符串算法
Nov 14 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
python中count函数简单的实例讲解
Feb 06 Python
python实现字符串和数字拼接
Mar 02 Python
python中的垃圾回收(GC)机制
Sep 21 Python
用Python实现大文本文件切割的方法
Jan 12 #Python
python实时获取外部程序输出结果的方法
Jan 12 #Python
python实现控制台打印的方法
Jan 12 #Python
python 自定义对象的打印方法
Jan 12 #Python
python设定并获取socket超时时间的方法
Jan 12 #Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 #Python
Python构建图像分类识别器的方法
Jan 12 #Python
You might like
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
python实现八大排序算法(1)
2017/09/14 Python
简单了解django缓存方式及配置
2019/07/19 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
什么是python的自省
2020/06/21 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
个人能力自我鉴赏
2014/01/25 职场文书
人力资源主管的岗位职责
2014/03/15 职场文书
活动总结报告格式
2014/05/09 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
慰问信模板
2015/02/14 职场文书
运动会开幕式主持词
2015/07/01 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
这样写python注释让代码更加的优雅
2021/06/02 Python
python 管理系统实现mysql交互的示例代码
2021/12/06 Python