国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

用python + openpyxl處理excel2007文檔思路以及心得

2020-02-23 05:32:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

尋覓工具

確定任務(wù)之后第一步就是找個(gè)趁手的庫(kù)來(lái)干活。 Python Excel上列出了xlrd、xlwt、xlutils這幾個(gè)包,但是

它們都比較老,xlwt甚至不支持07版以后的excel
它們的文檔不太友好,都可能需要去讀源代碼,而老姐的任務(wù)比較緊,加上我當(dāng)時(shí)在期末,沒(méi)有這個(gè)時(shí)間細(xì)讀源代碼
再一番搜索后我找到了openpyxl,支持07+的excel,一直有人在維護(hù),文檔清晰易讀,參照Tutorial和API文檔很快就能上手,就是它了~

安裝

這個(gè)很容易,直接pip install openpyxl,呵呵呵~

因?yàn)槲也恍枰幚韴D片,就沒(méi)有裝pillow。

一些考慮

源文件大約一個(gè)在1~2MB左右,比較小,所以可以直接讀入內(nèi)存處理。
既然是處理excel,何況他們整個(gè)組顯然都是win下干活(數(shù)據(jù)都用excel存了= =,商科的人啊……),這個(gè)腳本還是在win下做吧
這個(gè)任務(wù)完全不需要我對(duì)現(xiàn)有的文件做修改!囧……我只要讀入、處理、再寫(xiě)出另一個(gè)文件就行了

學(xué)習(xí)使用

嗯,就是打開(kāi)cmd,然后用python的shell各種玩這個(gè)模塊來(lái)上手……(win下沒(méi)有裝ipython,囧)

做這個(gè)小腳本基本上我只需要import兩個(gè)東西

from openpyxl import Workbookfrom openpyxl import load_workbook

load_workbook顧名思義是把文件導(dǎo)入到內(nèi)存,Workbook是最基本的一個(gè)類(lèi),用來(lái)在內(nèi)存里創(chuàng)建文件最后寫(xiě)進(jìn)磁盤(pán)的。

干活

首先我需要導(dǎo)入這個(gè)文件

inwb = load_workbook(filename)

得到的就是一個(gè)workbook對(duì)象

然后我需要?jiǎng)?chuàng)建一個(gè)新的文件

outwb = Workbook()

接著在這個(gè)新文件里,用create_sheet新建幾個(gè)工作表,比如

careerSheet = outwb.create_sheet(0, 'career')

就會(huì)從頭部插入一個(gè)叫career的工作表(也就是說(shuō)用法類(lèi)似python list的insert)

接下來(lái)我需要遍歷輸入文件的每個(gè)工作表,并且按照表名做一些工作(e.g.如果表名不是數(shù)字,我不需要處理),openpyxl支持用字典一樣的方式通過(guò)表名獲取工作表,獲取一個(gè)工作簿的表名的方法是get_sheet_names

for sheetName in inwb.get_sheet_names():  if not sheetName.isdigit():    continue  sheet = inwb[sheetName]

得到工作表之后,就是按列和行處理了。openpyxl會(huì)根據(jù)工作表里實(shí)際有數(shù)據(jù)的區(qū)域來(lái)確定行數(shù)和列數(shù),獲取行和列的方法是sheet.rows和sheet.columns,它們都可以像list一樣用。比如,如果我想跳過(guò)數(shù)據(jù)少于2列的表,可以寫(xiě)

if len(sheet.columns) < 2:  continue

如果我想獲取這個(gè)工作表的前兩列,可以寫(xiě)

colA, colB = sheet.columns[:2]

除了用columns和rows來(lái)得到這個(gè)工作表的行列之外,還可以用excel的單元格編碼來(lái)獲取一個(gè)區(qū)域,比如

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 合作市| 民乐县| 新和县| 石泉县| 桃园市| 同德县| 鄂伦春自治旗| 连平县| 遂川县| 习水县| 子长县| 房产| 阿勒泰市| 文化| 札达县| 小金县| 田林县| 鸡西市| 阿城市| 酒泉市| 江门市| 陵川县| 沐川县| 满洲里市| 临江市| 阜康市| 大宁县| 容城县| 卓资县| 汝阳县| 巴南区| 普定县| 红原县| 石首市| 米林县| 平原县| 北川| 涪陵区| 阜城县| 南岸区| 河北省|