Excel是一款適用于Windows的流行和強大的電子表格應(yīng)用程序。該openpyxl模塊允許您的Python程序讀取和修改Excel電子表格文件。例如,您可能會從一個電子表格中復制某些數(shù)據(jù)并將其粘貼到另一個電子表格中?;蛘撸赡苄枰?jīng)過數(shù)千行,并根據(jù)一些標準挑選出少數(shù)幾行進行小編輯?;蛘?,您可能需要查看數(shù)百個部門預算電子表格,搜索任何處于紅色狀態(tài)的電子表格。這些都是Python可以為你做的那種枯燥無味的電子表格任務(wù)。
創(chuàng)新互聯(lián)是一家專業(yè)提供酒泉企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都做網(wǎng)站、HTML5、小程序制作等業(yè)務(wù)。10年已為酒泉眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。Python不附帶OpenPyXL,因此您必須安裝它。
pip install openpyxl
檢查是否安裝正確
import openpyxl
OpenPyXL團隊定期發(fā)布新版本,可能命令或者功能隨時會有變動。不過,不要擔心:新版本應(yīng)該保持向后兼容本書中的說明相當長一段時間。如果你有一個更新的版本,并想知道你可以使用哪些附加功能,你可以在 http://openpyxl.redthedocs.org 查看OpenPyXL的完整文檔。
下面介紹一下本模塊的一些基本用法:
Excel自動為新工作簿提供的名為Sheet1,Sheet2和Sheet3的三個默認工作表的選項卡。(創(chuàng)建的默認工作表數(shù)量可能因操作系統(tǒng)和電子表格程序而異。)
使用OpenPyXL打開Excel文檔:
一旦你導入了openpyxl模塊,你就可以使用該openpyxl.load_workbook()功能。在交互式shell中輸入以下內(nèi)容:
>>> import openpyxl
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> type(wb)
<class'openpyxl.workbook.workbook.Workbook'>
該openpyxl.load_workbook()函數(shù)接受文件名并返回workbook數(shù)據(jù)類型的值。該Workbook對象表示Excel文件,有點像File對象表示打開的文本文件。
請記住,example.xlsx需要位于當前工作目錄中才能使用它。您可以通過導入os和使用來找出當前工作目錄是什么os.getcwd(),并且可以使用更改當前工作目錄os.chdir()。
您可以通過調(diào)用該get_sheet_names()方法來獲取工作簿中所有工作表名稱的列表。在交互式shell中輸入以下內(nèi)容:
>>> import openpyxl
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> wb.sheetnames
['Sheet1','Sheet2','Sheet3']
>>> sheet = wb[r'Sheet1']
>>> sheet
<工作表“Sheet3”>
>>> type(sheet)
<class'openpyxl.worksheet.worksheet.Worksheet'>
>>> sheet.title
“工作表Sheet 3”
>>> anotherSheet = wb.active
>>> anotherSheet
<Worksheet“Sheet1”>
每個工作表由一個Worksheet對象表示,您可以通過將get_sheet_by_name()工作表名稱字符串傳遞給工作簿方法來獲取該對象。最后,您可以讀取對象的active成員變量Workbook以獲取工作簿的活動工作表?;顒庸ぷ鞅硎窃贓xcel中打開工作簿時位于最上方的工作表。一旦你有了這個Worksheet對象,你可以從title屬性中獲得它的名字。
一旦你有一個Worksheet對象,你可以Cell通過它的名字來訪問一個對象。在交互式shell中輸入以下內(nèi)容:
>>> import openpyxl
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> sheet = wb['Sheet1']
>>> sheet ['A1']
<Cell Sheet1.A1>
>> > sheet ['A1'].value
datetime.datetime(2015,4,5,13,34,2)
OpenPyXL將自動解釋列A中的日期,并將它們作為datetime值返回而不是字符串。
>>> c = sheet ['B1']
>>> c.value
'Apples'
>>> 'Row '+ str(c.row)+',Column'+ c.column +'is'+ c.value'Row
1,Column B is Apples'
>>> 'Cell'+ c.coordinate +'is'+ c .value
'Cell B1 is Apples'
>>> 表['C1']。值
73
該Cell對象只是一個字符串,不會包含存儲在該單元格中的值。Cell對象也有row,column以及coordinate為單元提供位置信息的屬性。
在這里,訪問value我們Cell的單元格B1對象的屬性給了我們字符串'Apples'。該row屬性為我們提供了整數(shù)1,該column屬性給我們'B',和coordinate屬性給我們'B1'。
通過字母指定一個列可能會非常棘手,尤其是因為在列Z之后,列以兩個字母開頭:AA,AB,AC等等。作為替代方案,您還可以使用工作表的cell()方法獲取單元格,并為其參數(shù)row和column關(guān)鍵字參數(shù)傳遞整數(shù)。第一行或列的整數(shù)是1,而不是0。通過輸入以下內(nèi)容繼續(xù)交互式shell示例:
>>> sheet.cell(row = 1,column = 2)
<Cell Sheet1.B1>
>>> sheet.cell(row = 1,column = 2).value
'Apples'
>>> for i in range(1,8,2):
>>> print(i,sheet.cell(row = i,column = 2).value)
1蘋果
3梨
5蘋果
7草莓
要從字母轉(zhuǎn)換為數(shù)字,請調(diào)用該openpyxl.utils.column_index_from_string()函數(shù)。要將數(shù)字轉(zhuǎn)換為字母,請調(diào)用該openpyxl.utils.get_column_letter()函數(shù)。在交互式shell中輸入以下內(nèi)容:
>>> import openpyxl
>>> from openpyxl.utils import get_column_letter,column_index_from_string
>>> get_column_letter(1)
'A'
>>> get_column_letter(2)
'B'
>>> get_column_letter(27)
'AA'
>>> get_column_letter (900)
'AHP'
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> sheet = wb['Sheet1']
>>> get_column_letter(sheet.max_column)
'C'
>>> column_index_from_string ('A')
1
>>> column_index_from_string('AA')
27
從openpyxl.utils模塊中導入這兩個函數(shù)后,您可以調(diào)用get_column_letter()并傳遞一個像27這樣的整數(shù)來確定第27列的字母名稱。該函數(shù)會column_index_string()做相反的事情:您將它傳遞給列的字母名稱,并告訴您該列的編號。您不需要加載工作簿即可使用這些功能。如果你愿意,你可以加載一個工作簿,獲取一個Worksheet對象,并調(diào)用一個Worksheet對象方法max_column來獲得一個整數(shù)。然后,您可以將該整數(shù)傳遞給get_column_letter()。
要訪問特定行或列中單元格的值,還可以使用Worksheet對象rows和columns屬性。在交互式shell中輸入以下內(nèi)容:
>>> import openpyxl
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> sheet = wb.active
>>> sheet.columns [1]
(<Cell Sheet1.B1>,<Cell Sheet1.B2 >,<Cell Sheet1.B3>,<Cell Sheet1.B4>,
<Cell Sheet1.B5>,<Cell Sheet1.B6>,<Cell Sheet1.B7>)
>>> for sheetObjects in column.columns [1]:
print(cellObj.value)
蘋果
櫻桃
梨
橘子
蘋果
香蕉
草莓
將值寫入單元格很像將值寫入字典中的鍵。將其輸入到交互式shell中:
>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> sheet = wb['Sheet']
>>> sheet ['A1'] ='Hello world!'
>>> sheet ['A1'].value
>>> 'Hello world!'
如果將單元格的坐標作為字符串,則可以像Worksheet對象上的字典鍵一樣使用它來指定要寫入的單元格。
調(diào)用openpyxl.Workbook()函數(shù)來創(chuàng)建一個新的空白Workbook對象。在交互式shell中輸入以下內(nèi)容:
>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> wb.sheetnames
['Sheet']
>>> sheet = wb.active
>>> sheet.title'Sheet
'
>>> sheet.title ='Spam Bacon Eggs Sheet'
>>> wb.sheetnames
['Spam Bacon Eggs Sheet']
該工作簿將以名為Sheet的單張開始。您可以通過在其title屬性中存儲新字符串來更改工作表的名稱。
每次修改Workbook對象或其工作表和單元格時,在調(diào)用save()工作簿方法之前,電子表格文件都不會被保存。在交互式shell中輸入以下內(nèi)容(在當前工作目錄中使用example.xlsx):
>>> import openpyxl
>>> wb['example.xlsx']
>>> sheet = wb.active
>>> sheet.title ='垃圾郵件'
>>> wb.save('example_copy.xlsx“)
在這里,我們更改了我們的工作表的名稱。為了保存我們的更改,我們將一個文件名作為字符串傳遞給save()方法。傳遞與原始文件不同的文件名,例如'example_copy.xlsx',將更改保存到電子表格副本中。當然,保存的時候文件名可以和原本的文件名相同,那樣就相當于修改原來的文檔,我們這樣做只是為了安全,防止程序出錯導致原本的文檔出現(xiàn)問題。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
名稱欄目:Excel編輯模塊openpyxl的使用-創(chuàng)新互聯(lián)
分享URL:http://www.rwnh.cn/article30/ccghso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、移動網(wǎng)站建設(shè)、域名注冊、微信小程序、ChatGPT、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容