Python3學(xué)習(xí)筆記:Excel基礎(chǔ)操作-創(chuàng)新互聯(lián)

安裝模塊

柞水網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),柞水網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為柞水1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的柞水做網(wǎng)站的公司定做!

OpenPyXL 模塊是一個(gè)第三方模塊,所以需要使用 pip 工具安裝,

pip install openpyxl

文件結(jié)構(gòu)

首先,我們需要了解一下 Excel 文件的基本結(jié)構(gòu),一個(gè) Excel 文件被稱為一個(gè)工作薄,工作薄中可以包含多個(gè)工作表(sheet),每個(gè) sheet 由列和行組成,列與行的交叉點(diǎn)被稱為單元格,實(shí)際數(shù)據(jù)就是存放在單元格中的。單元格中的數(shù)據(jù)可以是數(shù)字、文本、時(shí)間或者公式等等。

基本操作

創(chuàng)建工作薄

首先,需要從 OpenPyXL 引入 Workbook 類,

from openpyxl import Workbook

使用該類可以創(chuàng)建一個(gè) Excel 文件,

workBookObject = Workbook()

workBookObject 就是 Workbook 類的實(shí)例的名稱,也就是一個(gè) Excel 工作薄。

通過 sheetnames 屬性獲取當(dāng)前工作薄中的工作表,

workBookobject.sheetnames

還可以通過 active 屬性獲取當(dāng)前正在操作的工作表,

workBookobject.active

保存工作薄

創(chuàng)建 Workbook 類的實(shí)例之后,其實(shí)并沒有創(chuàng)建一個(gè)真正的 Excel 文件,從一點(diǎn)就可以看出,我們?cè)趧?chuàng)建 Workbook 對(duì)象時(shí),并沒有給它一個(gè)實(shí)際的文件名,這時(shí)候可以通過 save() 方法將工作薄保存成一個(gè)實(shí)際的 Excel 文件,

workBookobject.save(filename="example.xlsx")

該方法會(huì)將文件保存到當(dāng)前目錄下。

如果需要將文件保存至指定位置,filename 參數(shù)也可以是一個(gè)路徑,如:

workBookobject.save(filename=r"D:\桌面\example.xlsx")

使用 save() 方法保存文件時(shí),要注意如果目錄下已經(jīng)存同名文件,該方法不會(huì)做出提示,而是會(huì)直接覆蓋保存。

創(chuàng)建工作表

創(chuàng)建工作薄之后,會(huì)默認(rèn)自動(dòng)創(chuàng)建一個(gè)工作表,我們也可以自己創(chuàng)建一個(gè)新的工作表,

workBookobject.create_sheet(sheetName)

sheetName 表示新工作表的名稱。如果需要將工作表重新命名,可以修改工作表的 title 屬性,

workBookobject["oldSheetName"].title = "newSheetName"

oldSheetName 即該工作表之前的名字,newSheetName 表示重命名之后的名字。而且可以看出,工作薄可以通過類似索引的方式訪問它的工作表,只不過這個(gè)“索引”是工作表的名字。

復(fù)制工作表

如果想創(chuàng)建某個(gè)工作表的副本,可以使用下面的方法,

workBookobject.copy_worksheet(sheetName)
復(fù)制
sheetName 表示該工作薄中一個(gè)已經(jīng)存在的工作表的名字。

刪除工作表

如果某個(gè)工作表不再需要,則可以通過 remove() 方法將其刪除,

workBookobject.remove(workBookobject["sheetName"])

賦值與取值

賦值

上面的操作都是針對(duì)工作薄及工作表的,但是我們知道在 Excel 文件中,真正的數(shù)據(jù)都是儲(chǔ)存在單元格中的。

在 Excel 文件中,列使用字母表示,行使用數(shù)字表示,如果將其視為一個(gè)坐標(biāo)系,則列的值就是 X 軸坐標(biāo)值,行的值就是 Y 軸坐標(biāo)值,單元格是列與行的交叉點(diǎn),所以單元格表示成 A1、F5 等。

給單元格賦值同樣可以采用類似索引的方式,首先取得工作表,然后再給其中某個(gè)單元格賦值即可,

workBookobject["sheetName"]["cellName"] = value

其中,cellName 就是單元格的名稱,如 A1、F5 等。

還可以使用 cell() 方法對(duì)單元格進(jìn)行賦值,

workBookobject["sheetName"].cell(column=colNo, row=rowNo, value=value)

該方法需要三個(gè)參數(shù),即列、行和值。

其中,列比較特殊,雖然在 Excel 文件中,列是由字母表示的,但是在 cell() 方法中,列和行一樣都是使用整數(shù)表示,從 1 開始。例如,E3 這個(gè)單元格的列是 E,但是在 cell() 方法中需要將其賦值為整數(shù) 5,如:

workBookobject["sheetName"].cell(column=5, row=3, value="python")

取值

取值很簡(jiǎn)單,直接使用單元格的編號(hào)即可取出其中的數(shù)據(jù),

workBookobject["sheetName"]["cellName"].value

cellName 表示單元格的名字,即它的列和行的坐標(biāo)點(diǎn),如 A9。單元格除了 value 這個(gè)屬性,還有 column(列)和 row(行)兩個(gè)屬性,用法同 value 一樣。

上面是取一個(gè)單元格的值,如果想要取一行中若干個(gè)單元格的值,只要在起始的單元格和結(jié)束的單元格之間使用冒號(hào)(:)分隔即可,

workBookobject["sheetName"]["startCellName":"endCellName"]

或者,

workBookobject["sheetName"]["startCellName:endCellName"]

得到的結(jié)果是一個(gè)元組的元組,即二維元組,里層元組的元素是 Cell 類型,如下所示:

(
(<Cell 'Sheet'.A1>,),
(<Cell 'Sheet'.A2>,),
(<Cell 'Sheet'.A3>,),
(<Cell 'Sheet'.A4>,),
(<Cell 'Sheet'.A5>,),
(<Cell 'Sheet'.A6>,),
(<Cell 'Sheet'.A7>,),
(<Cell 'Sheet'.A8>,),
(<Cell 'Sheet'.A9>,)
)

所以,訪問其中 A3 的值就是,

workBookobject["sheetName"]["A1:A9"][3][0].value

同理,如果是多列多行的單元格,同樣是一個(gè)二維元組,

(
(<Cell 'Sheet'.A1>, <Cell 'Sheet'.B1>, <Cell 'Sheet'.C1>),
(<Cell 'Sheet'.A2>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.C2>),
(<Cell 'Sheet'.A3>, <Cell 'Sheet'.B3>, <Cell 'Sheet'.C3>),
(<Cell 'Sheet'.A4>, <Cell 'Sheet'.B4>, <Cell 'Sheet'.C4>),
(<Cell 'Sheet'.A5>, <Cell 'Sheet'.B5>, <Cell 'Sheet'.C5>),
(<Cell 'Sheet'.A6>, <Cell 'Sheet'.B6>, <Cell 'Sheet'.C6>),
(<Cell 'Sheet'.A7>, <Cell 'Sheet'.B7>, <Cell 'Sheet'.C7>),
(<Cell 'Sheet'.A8>, <Cell 'Sheet'.B8>, <Cell 'Sheet'.C8>),
(<Cell 'Sheet'.A9>, <Cell 'Sheet'.B9>, <Cell 'Sheet'.C9>)
)

只不過這里是以列為基準(zhǔn),拋開外層元組不看,里層每個(gè)元組的元素都是同一列的單元格。

使用公式

在單元格使用公式與在 Office Excel 中操作文件一樣,如設(shè)置一個(gè) SUM 公式,

workBookobject["sheetName"]["A10"].value = "=SUM(A1:A9)"

則單元格 A10 的值就是 A1 到 A9 的和,前提是其中的數(shù)據(jù)是可以計(jì)算的。

但是,openpyxl 不會(huì)檢查寫的 Excel 公式名稱及語法是否正確,如果錯(cuò)誤不會(huì)給出任何提示,但是可以使用 openpyxl.utils 中的 FORMULAE 檢查公式名稱是否正確,例如,

from openpyxl.utils import FORMULAE

print("SUM" in FORMULAE)

如果公式名稱返回 True,否則返回 False。

加載已有文件

如果需要打開一個(gè)已經(jīng)存在的 Excel 文件,可以先加載該文件,

from openpyxl import load_workbook

workBookobject = load_workbook("example.xlsx")

同樣可以使用上面的方法對(duì)數(shù)據(jù)進(jìn)行操作。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞標(biāo)題:Python3學(xué)習(xí)筆記:Excel基礎(chǔ)操作-創(chuàng)新互聯(lián)
本文路徑:http://muchs.cn/article24/dscjje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、品牌網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷推廣、微信小程序網(wǎng)站策劃、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化