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 回调函数和回调方法的实现分析
Mar 23 Python
django中的setting最佳配置小结
Nov 21 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
Python3.4实现远程控制电脑开关机
Feb 22 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
python批量获取html内body内容的实例
Jan 02 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
keras 指定程序在某块卡上训练实例
Jun 22 Python
python 批量下载bilibili视频的gui程序
Nov 20 Python
Python wordcloud库安装方法总结
Dec 31 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
Memcache 在PHP中的使用技巧
2010/02/08 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
Python实现批量读取word中表格信息的方法
2015/07/30 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Python如何重新加载模块
2020/07/29 Python
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
医学生自荐信范文
2013/12/03 职场文书
《春天来了》教学反思
2014/04/07 职场文书
安全生产标语大全
2014/10/06 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
采购部年度工作总结
2015/08/13 职场文书
担保书怎么写 ?
2019/04/22 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript
mysql自增长id用完了该怎么办
2022/02/12 MySQL