在前面那么多的基礎(chǔ)知識(shí)鋪墊之后,,今天,文章內(nèi)容正式進(jìn)入實(shí)際操作階段,。首先要講的是辦公三巨頭中之Excel表格,。Excel表格可能是職場(chǎng)辦公中使用頻率最高的工具,只要是辦公中一切跟數(shù)字計(jì)算,,信息匯總等相關(guān)的工作,,一定會(huì)用到Excel。也正是因?yàn)槿绱?,Excel的重復(fù)操作也是最多的,,大量不同表格中的計(jì)算操作都要用鼠標(biāo)點(diǎn)點(diǎn)點(diǎn),很是煩人,。不知道大家有沒有思考過,,其實(shí)Excel的本質(zhì)從數(shù)學(xué)的角度上看,就是一個(gè)巨大的矩陣,,表格中的一個(gè)單元格就是矩陣中的一個(gè)元素,,每一個(gè)計(jì)算操作都可以通過計(jì)算矩陣而得到結(jié)果。而在計(jì)算機(jī)上,,使用python操作矩陣計(jì)算又是非常簡(jiǎn)單和快速的,。好了,咱們閑話不多說,下面正式開始干貨學(xué)習(xí),。 表格的本質(zhì) 在開頭,,咱們先對(duì)Excel表格的形式層級(jí)做一個(gè)明確的劃分。一個(gè)Excel表格在office軟件中的學(xué)名叫做一個(gè)工作簿,。一個(gè)工作簿中又有多個(gè)工作表,,即不同的sheet頁。一個(gè)工作表中就是我們具體操作的單元格,,每個(gè)單元格有自己的編號(hào),,A1,A2,,A3....,。這個(gè)劃分層級(jí)一定要搞清楚,在使用python代碼操作表格的時(shí)候,,經(jīng)常需要在這幾個(gè)概念中切換,。 Excel表格層級(jí)劃分 使用python操作Excel表格需要用到庫是xlrd和xlwt,。在進(jìn)入代碼編輯器寫代碼前,,一定要先安裝好這兩個(gè)第三方庫,如果這個(gè)還不會(huì)的話,,請(qǐng)看我的上一篇文章,,里面講的很清楚。 1.讀取Excel工作簿 首先,,使用import導(dǎo)入已經(jīng)安裝好的xlrd和xlwt兩個(gè)庫,。接下來就是要告訴代碼你的表格文件在什么地方,它才能夠去操作,。具體使用open_workbook來打開工作簿,,代碼如下: import xlrd, xlwt
xlsx = xlrd.open_workbook('D:/Excel表格/示例表格.xlsx')
# 我的表格文件在D盤下Excel文件夾中,名字叫示例表格
# 注意文件路徑中使用的是反斜桿/,,windows系統(tǒng)使用斜桿\容易產(chǎn)生轉(zhuǎn)義 open_workbook()是xlrd庫中的一個(gè)函數(shù),,它接收的參數(shù)就是你Excel表格的文件地址,記得要帶上后綴,。這個(gè)函數(shù)返回讀到的Excel表格對(duì)象,,這里xlsx就是讀到的表格對(duì)象。 2.讀取sheet工作表 接下來選擇工作薄中要操作的工作表,,具體有兩種方式進(jìn)行操作,,代碼如下:
第一種方式使用索引選擇,索引從0開始,,第一個(gè)sheet是0,,第二個(gè)sheet是1,,以此類推,。第二種是通過sheet名稱來選擇,,參數(shù)里直接給sheet的名稱。通過名稱選擇有些時(shí)候可能會(huì)因?yàn)橹形木幋a的問題而出錯(cuò),,所以這里還是推薦使用索引選擇,。 3.讀取單元格 最后到讀取工作表中具體的單元格,有三種不同的讀取形式,。這里要注意的是單元格的坐標(biāo),,第幾行第幾列都是從0開始計(jì)數(shù)的,如紅數(shù)字標(biāo)識(shí),。以下面的這個(gè)表格內(nèi)容為例,,用具體的代碼演示。 表格內(nèi)容 import xlrd, xlwt
xlsx = xlrd.open_workbook('D:/Excel表格/示例表格.xlsx')
table = xlsx.sheet_by_index(0) #通過sheet的索引選擇
value1 = table.cell_value(1,2) #cell_value參數(shù)中第一個(gè)是行,,第二個(gè)是列
print(value1) #輸出 胡明和
value2 = table.cell(4,1).value #第二種寫法,行列參數(shù)一樣
print(value2) #輸出 張迪
value3 = table.row(8)[1].value #第三種寫法
print(value3) #輸出 張明 以上三種方式寫法不同,,但是實(shí)現(xiàn)的讀取功能是一樣的,。 4.讀取行或列內(nèi)容 看到這里,有人可能就要問了,,這里讀取每次只能讀取一個(gè)單元格,,如果我要進(jìn)行一整行的讀取或者一整列的讀取怎么辦? 表格內(nèi)容 別急,,這也是可以進(jìn)行操作的。還是用上面的表格內(nèi)容,,代碼示例如下:
raw_value和col_value如果只給第一個(gè)參數(shù),,默認(rèn)它會(huì)讀取整行或者整列,如果后面再加上起始和結(jié)束的數(shù)字區(qū)間,,就能夠讀取行列中的某一部分,。 要實(shí)現(xiàn)行或列整段的內(nèi)容讀取,除了使用現(xiàn)成的raw_value和col_value,,其實(shí)也能夠通過批量操作單元格來實(shí)現(xiàn),。思路是什么呢?前面文章的內(nèi)容已經(jīng)講過,,答案就是用循環(huán),。將單個(gè)單元格的讀取放在一個(gè)循環(huán)控制中實(shí)現(xiàn)行列讀取,這就是raw_value和col_value兩個(gè)函數(shù)的底層實(shí)現(xiàn),。大家可以自己嘗試著寫寫看,。 Excel的讀取講到這里就結(jié)束了,。也許有人想:這光讀取內(nèi)容也沒什么用,真正要的是“處理”表格,。在這里我想說的是,,“處理”過程是由多個(gè)步驟組成的,讀取只是處理開始的第一步,,我們要先夯實(shí)基礎(chǔ),,后面的過程才能走得下去,大家要耐心一步一步來,。本文內(nèi)容就此告一段落,,后面的文章咱們進(jìn)入Excel內(nèi)容的寫入。 下期預(yù)告:python操作Excel表格寫入 |
|