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 随机数使用方法,推导以及字符串,双色球小程序实例
Sep 12 Python
Python实现PS图像明亮度调整效果示例
Jan 23 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python中字典按键或键值排序的实现代码
Aug 27 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
基于Python绘制个人足迹地图
Jun 01 Python
基于pycharm实现批量修改变量名
Jun 02 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
Python3实现建造者模式的示例代码
Jun 28 Python
Python爬虫之Selenium实现键盘事件
Dec 04 Python
Python利用capstone实现反汇编
Apr 06 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
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
外贸英语专业求职信范文
2013/12/25 职场文书
信仰观后感
2015/06/03 职场文书
聘任合同书
2015/09/21 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书