python第三方庫(kù)——xlwt3

我們之前已經(jīng)學(xué)習(xí)了xlrd這個(gè)庫(kù),這個(gè)庫(kù)是讀取excel表格內(nèi)信息的考婴,它并不能寫(xiě)入信息赤嚼,這時(shí)候我們需要使用xlwt3這個(gè)庫(kù)進(jìn)行excel表格的寫(xiě)入。

安裝

打開(kāi)命令提示符辅髓,使用pip進(jìn)行安裝

pip install xlwt3

安裝完后進(jìn)入下一步:
這個(gè)xlwt3的庫(kù)泣崩,好像已經(jīng)很久沒(méi)有人維護(hù)了,所以有一個(gè)問(wèn)題就是洛口,你用pip安裝的這個(gè)庫(kù)矫付,是有點(diǎn)問(wèn)題的,需要咱們手動(dòng)修改第焰。

打開(kāi)python的安裝目錄买优,就是你的python的安裝位置,我的在D盤(pán)挺举,找到D:\Python34\Lib\site-packages\xlwt3\formula.py這個(gè)文件杀赢,右鍵點(diǎn)擊,使用IDLE打開(kāi)

Edit with IDLE

將其中的

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

修改為

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

就是把第一個(gè)"__init__"刪掉湘纵。

`__slots__`

保存脂崔,關(guān)閉。

打開(kāi)python shell
使用import xlwt3梧喷,看看報(bào)不報(bào)錯(cuò)砌左,沒(méi)有報(bào)錯(cuò)說(shuō)明修改成功。安裝完成伤柄。

使用

1. 創(chuàng)建工作簿

我們使用這個(gè)包主要是為了生成excel表格绊困,將我們處理好的數(shù)據(jù)存到excel表格中文搂。
為此适刀,我們需要的是xlwt3里面的Workbook這個(gè)類(lèi)。
先創(chuàng)建實(shí)例:

import xlwt3
file = xlwt3.Workbook()

這樣就創(chuàng)建完了一個(gè)實(shí)例煤蹭。

2.創(chuàng)建工作表

我們知道笔喉,一個(gè).xlsx文件或.xls文件稱(chēng)為一個(gè)工作簿,里面有好幾張工作表硝皂,我們現(xiàn)在創(chuàng)建的這個(gè)Workbook()實(shí)例常挚,它也是一個(gè)工作簿,我們要寫(xiě)入內(nèi)容的話是要寫(xiě)進(jìn)工作表里面的稽物,這就需要我們創(chuàng)建一個(gè)工作表奄毡,工作表名是'test1'。

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

使用的是Workbook下屬的add_sheet方法贝或,add_sheet吼过,新建工作表锐秦。
add_sheet(self, sheetname, cell_overwrite_ok=False)

需要注意的是,這個(gè)方法有兩個(gè)參數(shù)
· 第一個(gè)是sheetname盗忱,這個(gè)是工作表的名字酱床,必須要設(shè)置的
· 另一個(gè)參數(shù)是cell_overwrite_ok,這個(gè)參數(shù)是覆寫(xiě)的意思趟佃,默認(rèn)是False扇谣,如果你現(xiàn)在要寫(xiě)的單元格里面,已經(jīng)有內(nèi)容了闲昭,就不能寫(xiě)了罐寨,如果你要是寫(xiě)的話會(huì)報(bào)錯(cuò)的。當(dāng)然序矩,我們?cè)谑褂玫臅r(shí)候衩茸,最好是設(shè)置成True。也就是上面的那個(gè)寫(xiě)法贮泞。這樣對(duì)同一個(gè)單元格寫(xiě)入兩次的話就不會(huì)報(bào)錯(cuò)了楞慈,當(dāng)然,只會(huì)保留最后一次寫(xiě)入的值啃擦。

3.寫(xiě)入信息

接下來(lái)可以寫(xiě)入信息了囊蓝。
事實(shí)上,我們剛才使用add_sheet這個(gè)方法后令蛉,創(chuàng)建出了一個(gè)Worksheet類(lèi)的實(shí)例聚霜。這個(gè)類(lèi)有兩個(gè)方法是我們需要使用的,一個(gè)是write珠叔,另一個(gè)是write_merge蝎宇。前者用來(lái)寫(xiě)入一個(gè)單元格的內(nèi)容,后者用來(lái)寫(xiě)入一個(gè)合并單元格的內(nèi)容祷安。

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方法姥芥,里面有四個(gè)參數(shù),分別是r汇鞭,c凉唐,label,style霍骄,
· r是行
· c是列
· label是內(nèi)容
· style是格式
上面寫(xiě)的table.write(1,0,'number')是在第二行的第一列寫(xiě)入'number'這個(gè)字符串台囱。
同理,另外兩句分別是在第二行的第二列和第二行的第三列寫(xiě)入'name'和'score'這兩個(gè)字符串读整。

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

write_merge是寫(xiě)合并單元格的方法
· r1是最上面的單元格所在的行數(shù)
· r2是最下面的單元格所在的行數(shù)
· c1是最左面的單元格所在的列數(shù)
· c2是最右面的單元格所在的列數(shù)
· label是要寫(xiě)入的內(nèi)容
· style是格式
上面那個(gè)table.write_merge(0,0,0,2,'Student information')簿训,是把第0行的第一列,第二列,第三列的單元格合并了强品,在里面寫(xiě)入'Student information'這個(gè)字符串豺总。

如果我們寫(xiě)入信息的時(shí)候,不加style這個(gè)參數(shù)择懂,那么里面的信息就是最普通的喻喳,沒(méi)有什么格式,顏色啊困曙,粗體啊表伦,邊框啊,什么的慷丽。
在xlwt3中蹦哼,使用easyxf這個(gè)函數(shù)來(lái)設(shè)置單元格屬性。

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')

比如這句當(dāng)中要糊,我們可以看到傳入了一個(gè)字符串作為參數(shù):
'font: bold on, italic on, name 宋體, height 400, color red; align: vert centre, horiz centre; borders: top THIN,left THIN,right THIN,bottom THIN'
分解來(lái)看纲熏,這個(gè)字符串有三部分:

  1. font:字體
    · bold on: 設(shè)置成粗體
    · italic on: 設(shè)置成斜體
    · name 宋體: 字體設(shè)置成宋體
    · height 400: 字號(hào)20
    · color red: 字體紅色

  2. align:對(duì)齊
    · vert centre: 垂直居中
    · horiz centre: 水平居中

  3. borders:邊框
    · top THIN: 上邊框細(xì)線
    · left THIN: 左邊框細(xì)線
    · right THIN: 右邊框細(xì)線
    · bottom THIN: 底邊框細(xì)線

我們剛才不是用

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')

創(chuàng)建了一個(gè)單元格屬性嗎,紅色20號(hào)宋體锄俄,粗體局劲,斜體,四周有邊框奶赠,居中鱼填。
寫(xiě)入的使用加在作為style參數(shù)傳入。

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')

這樣毅戈,我們就成功的設(shè)置單元格格式了苹丸。
接下來(lái)我們?cè)O(shè)置列寬。

table.col(0).width = 5293

使用這個(gè)方法就能設(shè)置列寬了苇经,里面的0代表第一列赘理,列寬是20。我也不知道這個(gè)列寬是怎么換算的扇单,只要設(shè)置5293的話就是20商模,大家可以根據(jù)換算設(shè)置自己想要的列寬。

4. 保存

最后一步令花,保存我們建立的工作簿阻桅。

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

這里面就一個(gè)參數(shù),你要保存的excel表格的文件名兼都。需要加路徑和后綴名的。需要注意的是稽寒,這個(gè)xlwt3只能保存成.xls的excel文件扮碧。

test_excel.xls

打開(kāi)我們保存的excel表格。

工作表名和列寬

可以看到,工作表名是我們?cè)O(shè)置的test1慎王,第一行的前三個(gè)單元格合并了蚓土,內(nèi)容是'Student information',紅色20號(hào)宋體赖淤,粗體蜀漆,斜體,四周有邊框咱旱,居中确丢。第二行分別是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')

以上就是創(chuàng)建這個(gè)excel表格的流程。
剛才上pypi發(fā)現(xiàn)诸典,這個(gè)包好像就要被移除了描函,這樣的話以后用pip就無(wú)法安裝了。
xlwt3 0.1.2 : Python Package Index

xlwt3 0.1.2 : Python Package Index

可以看到它在11年就停止更新了狐粱。推薦我們?nèi)ナ褂?a target="_blank" rel="nofollow">xlwt-future舀寓。
我們可以使用pip install xlwt-future來(lái)安裝,不知道好不好使肌蜻。

xlwt-future 0.8.0 : Python Package Index

不過(guò)基公,這兩個(gè)包都只支持.xls格式,不支持保存為.xlsx格式宋欺,所以這兩個(gè)包以后勢(shì)必會(huì)被淘汰掉的轰豆。大家可以找找,看看有沒(méi)有其他更好的包齿诞,之前在知乎上看別人推薦過(guò)PyXLL酸休,這個(gè)也是處理excel的,可以免費(fèi)試用30天祷杈,之后就得付費(fèi)了斑司。
PyXLL: Excel functions written in Python

以上就是關(guān)于xlwt3這個(gè)包的簡(jiǎn)單教程。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末但汞,一起剝皮案震驚了整個(gè)濱河市宿刮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌私蕾,老刑警劉巖僵缺,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異踩叭,居然都是意外死亡磕潮,警方通過(guò)查閱死者的電腦和手機(jī)翠胰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)自脯,“玉大人之景,你說(shuō)我怎么就攤上這事「喑保” “怎么了锻狗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)焕参。 經(jīng)常有香客問(wèn)我轻纪,道長(zhǎng),這世上最難降的妖魔是什么龟糕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任桐磁,我火速辦了婚禮,結(jié)果婚禮上讲岁,老公的妹妹穿的比我還像新娘我擂。我一直安慰自己,他們只是感情好缓艳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布校摩。 她就那樣靜靜地躺著,像睡著了一般阶淘。 火紅的嫁衣襯著肌膚如雪衙吩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天溪窒,我揣著相機(jī)與錄音坤塞,去河邊找鬼。 笑死澈蚌,一個(gè)胖子當(dāng)著我的面吹牛摹芙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宛瞄,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼浮禾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了份汗?” 一聲冷哼從身側(cè)響起盈电,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杯活,沒(méi)想到半個(gè)月后匆帚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轩猩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年卷扮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荡澎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片均践。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晤锹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出彤委,到底是詐尸還是另有隱情鞭铆,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布焦影,位于F島的核電站车遂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏斯辰。R本人自食惡果不足惜舶担,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望彬呻。 院中可真熱鬧衣陶,春花似錦、人聲如沸闸氮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蒲跨。三九已至译断,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間或悲,已是汗流浹背孙咪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巡语,地道東北人翎蹈。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像捌臊,于是被迫代替她去往敵國(guó)和親杨蛋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自鏈接 目錄 1.認(rèn)識(shí)NPOI 2.使用NPOI生成xls文件 2.1創(chuàng)建基本內(nèi)容 2.1.1創(chuàng)建Workboo...
    腿毛褲閱讀 10,484評(píng)論 1 3
  • 使用首先需要了解他的工作原理 1.POI結(jié)構(gòu)與常用類(lèi) (1)創(chuàng)建Workbook和Sheet (2)創(chuàng)建單元格 (...
    長(zhǎng)城ol閱讀 8,409評(píng)論 2 25
  • 一理澎、誤刪資料恢復(fù) 一不小心刪錯(cuò)了逞力,還把回收站清空了,咋辦翱放馈寇荧?只要三步,你就能找回你刪掉并清空回收站的東西执隧。 步驟:...
    八爺君閱讀 1,540評(píng)論 2 7
  • 也許你已經(jīng)做了上千張表格揩抡,也許你用函數(shù)算了上千復(fù)雜的運(yùn)算户侥。也許認(rèn)為excel不過(guò)如此,今天25招秘技希望可以幫到大...
    南屋阿米佛頭閱讀 3,709評(píng)論 0 51
  • 轉(zhuǎn)自鏈接 2.3.5 IF函數(shù) 2.3.6 CountIf和SumIf函數(shù) 2.3.7 Lookup函數(shù) 2.3....
    腿毛褲閱讀 12,861評(píng)論 0 0