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之重回函数
Oct 10 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
Apr 08 Python
简单介绍Python中的几种数据类型
Jan 02 Python
Python基于回溯法子集树模板解决全排列问题示例
Sep 07 Python
简单谈谈Python的pycurl模块
Apr 07 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
详解python中groupby函数通俗易懂
May 14 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
python调用有道智云API实现文件批量翻译
Oct 10 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
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
js格式化时间的方法
2015/12/18 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
Python构造函数及解构函数介绍
2015/02/26 Python
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
django ORM之values和annotate使用详解
2020/05/19 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
辩论赛主持词
2014/03/18 职场文书
商务经理岗位职责
2014/08/03 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
大学生十八大感想
2015/08/11 职场文书
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技