python第三方库——xlwt3

我们之前已经学习了xlrd这个库,这个库是读取excel表格内信息的,它并不能写入信息,这时候我们需要使用xlwt3这个库进行excel表格的写入。

安装

打开命令提示符,使用pip进行安装

pip install xlwt3

安装完后进入下一步:
这个xlwt3的库,好像已经很久没有人维护了,所以有一个问题就是,你用pip安装的这个库,是有点问题的,需要咱们手动修改。

打开python的安装目录,就是你的python的安装位置,我的在D盘,找到D:\Python34\Lib\site-packages\xlwt3\formula.py这个文件,右键点击,使用IDLE打开

Edit with IDLE

将其中的

__slots__ = ["__init__",  "__s", "__parser", "__sheet_refs", "__xcall_refs"]

修改为

__slots__ = [ "__s", "__parser", "__sheet_refs", "__xcall_refs"]

就是把第一个"__init__"删掉。

`__slots__`

保存,关闭。

打开python shell
使用import xlwt3,看看报不报错,没有报错说明修改成功。安装完成。

使用

1. 创建工作簿

我们使用这个包主要是为了生成excel表格,将我们处理好的数据存到excel表格中。
为此,我们需要的是xlwt3里面的Workbook这个类。
先创建实例:

import xlwt3
file = xlwt3.Workbook()

这样就创建完了一个实例。

2.创建工作表

我们知道,一个.xlsx文件或.xls文件称为一个工作簿,里面有好几张工作表,我们现在创建的这个Workbook()实例,它也是一个工作簿,我们要写入内容的话是要写进工作表里面的,这就需要我们创建一个工作表,工作表名是'test1'。

table = file.add_sheet('test1',cell_overwrite_ok = True)

使用的是Workbook下属的add_sheet方法,add_sheet,新建工作表。
add_sheet(self, sheetname, cell_overwrite_ok=False)

需要注意的是,这个方法有两个参数
· 第一个是sheetname,这个是工作表的名字,必须要设置的
· 另一个参数是cell_overwrite_ok,这个参数是覆写的意思,默认是False,如果你现在要写的单元格里面,已经有内容了,就不能写了,如果你要是写的话会报错的。当然,我们在使用的时候,最好是设置成True。也就是上面的那个写法。这样对同一个单元格写入两次的话就不会报错了,当然,只会保留最后一次写入的值。

3.写入信息

接下来可以写入信息了。
事实上,我们刚才使用add_sheet这个方法后,创建出了一个Worksheet类的实例。这个类有两个方法是我们需要使用的,一个是write,另一个是write_merge。前者用来写入一个单元格的内容,后者用来写入一个合并单元格的内容。

table.write_merge(0,0,0,2,'Student information')
table.write(1,0,'number')
table.write(1,1,'name')
table.write(1,2,'score')
write(self, r, c, label=b'', style=<xlwt3.style.XFStyle object at 0x00000000037D6358>)

我们先看write方法,里面有四个参数,分别是r,c,label,style,
· r是行
· c是列
· label是内容
· style是格式
上面写的table.write(1,0,'number')是在第二行的第一列写入'number'这个字符串。
同理,另外两句分别是在第二行的第二列和第二行的第三列写入'name'和'score'这两个字符串。

write_merge(self, r1, r2, c1, c2, label=b'', style=<xlwt3.style.XFStyle object at 0x00000000037D6358>)

write_merge是写合并单元格的方法
· r1是最上面的单元格所在的行数
· r2是最下面的单元格所在的行数
· c1是最左面的单元格所在的列数
· c2是最右面的单元格所在的列数
· label是要写入的内容
· style是格式
上面那个table.write_merge(0,0,0,2,'Student information'),是把第0行的第一列,第二列,第三列的单元格合并了,在里面写入'Student information'这个字符串。

如果我们写入信息的时候,不加style这个参数,那么里面的信息就是最普通的,没有什么格式,颜色啊,粗体啊,边框啊,什么的。
在xlwt3中,使用easyxf这个函数来设置单元格属性。

titlestyle = xlwt3.easyxf('font: bold on, italic on, name 宋体, height 400, color red; align: vert centre, horiz centre; borders: top THIN,left THIN,right THIN,bottom THIN')

比如这句当中,我们可以看到传入了一个字符串作为参数:
'font: bold on, italic on, name 宋体, height 400, color red; align: vert centre, horiz centre; borders: top THIN,left THIN,right THIN,bottom THIN'
分解来看,这个字符串有三部分:

  1. font:字体
    · bold on: 设置成粗体
    · italic on: 设置成斜体
    · name 宋体: 字体设置成宋体
    · height 400: 字号20
    · color red: 字体红色

  2. align:对齐
    · vert centre: 垂直居中
    · horiz centre: 水平居中

  3. borders:边框
    · top THIN: 上边框细线
    · left THIN: 左边框细线
    · right THIN: 右边框细线
    · bottom THIN: 底边框细线

我们刚才不是用

titlestyle = xlwt3.easyxf('font: bold on, italic on, name 宋体, height 400, color red; align: vert centre, horiz centre; borders: top THIN,left THIN,right THIN,bottom THIN')

创建了一个单元格属性吗,红色20号宋体,粗体,斜体,四周有边框,居中。
写入的使用加在作为style参数传入。

table.write_merge(0,0,0,2,'Student information',titlestyle)
table.write(1,0,'number')
table.write(1,1,'name')
table.write(1,2,'score')

这样,我们就成功的设置单元格格式了。
接下来我们设置列宽。

table.col(0).width = 5293

使用这个方法就能设置列宽了,里面的0代表第一列,列宽是20。我也不知道这个列宽是怎么换算的,只要设置5293的话就是20,大家可以根据换算设置自己想要的列宽。

4. 保存

最后一步,保存我们建立的工作簿。

file.save('D:\\test_excel.xls')

这里面就一个参数,你要保存的excel表格的文件名。需要加路径和后缀名的。需要注意的是,这个xlwt3只能保存成.xls的excel文件。

test_excel.xls

打开我们保存的excel表格。

工作表名和列宽

可以看到,工作表名是我们设置的test1,第一行的前三个单元格合并了,内容是'Student information',红色20号宋体,粗体,斜体,四周有边框,居中。第二行分别是number,name,score。

file = xlwt3.Workbook()
table = file.add_sheet('test1',cell_overwrite_ok = True)

titlestyle = xlwt3.easyxf('font: bold on, italic on, name 宋体, height 400, color red; align: vert centre, horiz centre; borders: top THIN,left THIN,right THIN,bottom THIN')

table.write_merge(0,0,0,2,'Student information',titlestyle)
table.write(1,0,'number')
table.write(1,1,'name')
table.write(1,2,'score')

table.col(0).width = 5293

file.save('D:\\test_excel.xls')

以上就是创建这个excel表格的流程。
刚才上pypi发现,这个包好像就要被移除了,这样的话以后用pip就无法安装了。
xlwt3 0.1.2 : Python Package Index

xlwt3 0.1.2 : Python Package Index

可以看到它在11年就停止更新了。推荐我们去使用xlwt-future
我们可以使用pip install xlwt-future来安装,不知道好不好使。

xlwt-future 0.8.0 : Python Package Index

不过,这两个包都只支持.xls格式,不支持保存为.xlsx格式,所以这两个包以后势必会被淘汰掉的。大家可以找找,看看有没有其他更好的包,之前在知乎上看别人推荐过PyXLL,这个也是处理excel的,可以免费试用30天,之后就得付费了。
PyXLL: Excel functions written in Python

以上就是关于xlwt3这个包的简单教程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • 转自链接 目录 1.认识NPOI 2.使用NPOI生成xls文件 2.1创建基本内容 2.1.1创建Workboo...
    腿毛裤阅读 10,373评论 1 3
  • 使用首先需要了解他的工作原理 1.POI结构与常用类 (1)创建Workbook和Sheet (2)创建单元格 (...
    长城ol阅读 8,392评论 2 25
  • 一、误删资料恢复 一不小心删错了,还把回收站清空了,咋办啊?只要三步,你就能找回你删掉并清空回收站的东西。 步骤:...
    八爷君阅读 1,539评论 2 7
  • 也许你已经做了上千张表格,也许你用函数算了上千复杂的运算。也许认为excel不过如此,今天25招秘技希望可以帮到大...
    南屋阿米佛头阅读 3,705评论 0 51
  • 转自链接 2.3.5 IF函数 2.3.6 CountIf和SumIf函数 2.3.7 Lookup函数 2.3....
    腿毛裤阅读 12,772评论 0 0