Python自學(xué)之路-Excel模塊的使用總結(jié)

工作中經(jīng)常和數(shù)據(jù)打交道,也避免不了使用Excel整理或者匯總一些數(shù)據(jù),業(yè)務(wù)經(jīng)常會(huì)給到一些excel,要求把這些數(shù)據(jù)怎么樣怎么樣,既然學(xué)了Python,就打算寫個(gè)腳本處理這些數(shù)據(jù),于是看了些操作excel的模塊(xlrd&xlwt、XlsxWriter、OpenPyXL、Microsoft Excel API)。這里對(duì)相關(guān)基礎(chǔ)用法做些總結(jié)。

(一)xlrd&xlwt

xlrd用來讀取excel文件,xlwt用來寫excel文件,它們合作來對(duì)excel進(jìn)行操作。

官方文檔:http://www.python-excel.org/

xlrd官方介紹:https://pypi.python.org/pypi/xlrd/1.0.0

xlwt官方介紹:https://pypi.python.org/pypi/xlwt/1.1.2

xlutils官方介紹:https://pypi.python.org/pypi/xlutils

安裝后引用:

xlrd用來讀取excel文件,大致的簡(jiǎn)單操作參考如下:

xlwt用來寫excel文件,大致的簡(jiǎn)單操作如下:

(二)XlsxWriter

Xlsx是python用來構(gòu)造xlsx文件的模塊,可以向excel2007+中寫text,numbers,formulas 公式以及hyperlinks超鏈接。

Xlsx是python用來構(gòu)造xlsx文件的模塊,可以向excel2007+中寫text,numbers,formulas 公式以及hyperlinks超鏈接。

官網(wǎng)Tutorial:http://xlsxwriter.readthedocs.io/tutorial

大致的簡(jiǎn)單操作如下:

同時(shí)在寫入時(shí)可以使用公式,并且可以自定義格式:

(三)OpenPyXL

OpenPyXL是比較綜合的一個(gè)工具,能讀能寫能修改,功能還算可以但也有很大的缺陷。不支持XLS,不支持讀取公式。

由于沒有什么亮點(diǎn)和優(yōu)勢(shì),所以自己沒有親自去嘗試。

OpenPyXL的工作模式跟XlsxWriter和xlwt有很大的區(qū)別,它用的是getter/setter模式。你可以隨時(shí)讀取某個(gè)單元格的內(nèi)容,并根據(jù)其內(nèi)容進(jìn)行相應(yīng)的修改,OpenPyXL會(huì)幫你記住每個(gè)單元格的狀態(tài)。

特別需要注意的一點(diǎn):雖然它支持修改已有文件,但由于其所支持的功能有限,讀入文件時(shí)會(huì)忽略掉它所不支持的內(nèi)容,再寫入時(shí),這些內(nèi)容就丟失了。因此使用時(shí)一定要慎重。比如下面的缺點(diǎn)中提到它無法讀入公式,那如果你修改一個(gè)帶有公式的文件,保存之后,所有的公式就都沒有了。

(四)Microsoft Excel API

大部分Windows環(huán)境的開發(fā)人員都會(huì)選擇Microsoft Excel API。實(shí)際上不僅僅是Python,幾乎各種語言都有相應(yīng)的方法使用它,因?yàn)楹诵牡倪壿嬐耆怯蒑icrosftExcel自身提供的。語言相關(guān)的部分只是負(fù)責(zé)跟Windows的COM組件進(jìn)行通信。

在Python中首先需要安裝Python for Windows extensionspywin32),具體的文檔可以查閱Win32 ModulesPython COM。

當(dāng)然你還必須要安裝某一個(gè)版本的Microsoft Office Excel,它內(nèi)部的DLL負(fù)責(zé)實(shí)際的操作。

但是有兩個(gè)致命的缺點(diǎn):慢到死和平臺(tái)限制。

因?yàn)橐郧皣L試過,所以也沒有親自實(shí)踐,但MSDN上的文檔絕對(duì)詳細(xì),要處理操作復(fù)雜的Excel的話可以考慮使用。

(五)總結(jié)

在google了一番和嘗試之后,最終決定使用xlrd來讀(既支持XLS,也支持XLSX),用XlsxWriter來寫。目前使用下來還是這個(gè)搭配基本上解決了我操作Excel的需求。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,840評(píng)論 6 427
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    小邁克閱讀 3,127評(píng)論 1 3
  • Python Excel技術(shù)對(duì)比 XlsxWriter,xlrd&xlwt,OpenPyXL,Microsoft ...
    一只好奇的茂閱讀 7,100評(píng)論 0 32
  • 看到一則新聞,在印度首都,有十萬多的游民無家可歸,他們宿在橋洞等地方,其中有很多是老人和兒童。去印度旅游的中國小伙...
    瑀軒閱讀 394評(píng)論 0 0
  • 千言萬語不知從何說起如何說起
    魔的私人衛(wèi)隊(duì)閱讀 399評(píng)論 0 0

友情鏈接更多精彩內(nèi)容