python中使用 xlwt 操作excel的常见方法与问题
作者:捕风 发布时间:2021-09-12 05:10:02
标签:python,xlwt,excel
前言
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()
来源:https://segmentfault.com/a/1190000017866070
0
投稿
猜你喜欢
- 1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Se
- 使用 Python 内建的defaultdict 方法可以轻松定义一个树的数据结构。简单的说树也可以是一个字典数据结构 def t
- 先放关键代码:i = tf.train.range_input_producer(NUM_EXPOCHES, num_epochs=1, s
- 今天在看框架的时候无意间看到了document.compatMode,经过一番资料查找,终于搞懂了。文档模式在开发中貌似很少用到,最常见的是
- 随便在网上找了找,感觉都是讲半天讲不清楚,这里写一下。def generator(): while True: &
- SQL Server 2005的新功能为动态管理对象,它们是在指定时间返回某个数据库实例的特殊状态信息的数据库视图或函数。这些对象允许数据库
- 目录1. format格式化_填充符号使用1.1 format格式化1.2 format的填充符号的使用2. 字符串相关的方法3. 列表的相
- python生成指定尺寸的缩略图def MakeThumb(path, sizes=(75, 32, 16)): &n
- 本文实例讲述了Python3.5 Pandas模块之DataFrame用法。分享给大家供大家参考,具体如下:1、DataFrame的创建(1
- 一、jupyter notebook是什么官网的介绍是:Jupyter Notebook是一个Web应用程序,允许您创建和共享包含实时代码,
- 前言本文提供将图片分辨率调整的python代码,一如既往的实用主义。环境依赖ffmpeg环境安装,可以参考:windows ffmpeg安装
- 开发过程中,错误免不了。为了纠正错误与规范化。可以使用MS SQL Server的系统存储过程sp_rename与OBJECTPROPERT
- 虽然在Python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break
- 我们知道了钢琴键盘的音高是其实是有规律的,如下频率翻倍,高一个八度国际基准音:440Hz,钢琴键盘上对应小字一组的la小字一组的la可以看下
- 实现原理PS的扩散效果可以产生类似毛玻璃质感的效果,使画面有些毛毛的感觉。其实现可通过操作像素三通道数值的方式实现,定义一个随机数器,将图像
- /** * 截取字符串 len为字节长度 * @param str * @param len * @return * @throws Uns
- 简介这两天更新完Xcode8之后发现Xcode对图标的要求又有了变化,之前用的一个小应用“IconKit”还没赶上节奏,已经不能满足Xcod
- 一、数据爬取的代码#encoding='utf-8'from selenium import webdriverimport
- 1. 返回列表和标量(Scalar)前面我们注意到Query对象可以返回可迭代的值(iterator value),然后我们可以通过for
- 上节回顾主要讲了协程、进程、异步IO多路复用。 协程和IO多路复用都是单线程的。epoll 在linux下通过这个模块libev