python与Excel的完美结合
Excel 是 Windows 環(huán)境下流行的、強(qiáng)大的電子表格應(yīng)用。openpyxl 模塊讓 Python 程序能讀取和修改 Excel 電子表格文件。例如,可能有一個(gè)無聊的任務(wù),需要從一個(gè)電子表格拷貝一些數(shù)據(jù),粘貼到另一個(gè)電子表格中。或者可能需要從幾千行中挑選幾行,根據(jù)某種條件稍作修改。或者需要查看幾百份部門預(yù)算電子表格,尋找其中的赤字。
正是這種無聊無腦的電子表格任務(wù),可以通過 Python 來完成。LibreOffice Calc, WPS 和 OpenOffice Calc 都能處理 Excel 的電子表格文件格式,這意味著 openpyxl 模塊也能處理來自這些應(yīng)用程序的電子表格。
你可以從 https://www.libreoffice.org/和http://www.openoffice.org/下載這些軟件。即使你的計(jì)算機(jī)上已經(jīng)安裝了 Excel,可能也會(huì)發(fā)現(xiàn)這些程序更容易使用。
1. Excel文檔基本定義
- 工作簿(workbook): 一個(gè) Excel 電子表格文檔;
- 工作表(sheet): 每個(gè)工作簿可以包含多個(gè)表, 如: sheet1, sheet2等;
- 活動(dòng)表(active sheet): 用戶當(dāng)前查看的表;
- 列(column): 列地址是從 A 開始的;
- 行(row): 行地址是從 1 開始的;
- 單元格(cell): 特定行和列的方格;
2. 安裝 openpyxl 模塊
Python 沒有自帶 openpyxl,所以必須安裝。
pip3 install openpyxl3. 讀取 Excel 文檔
將使用一個(gè)電子表格 example.xlsx,你可以自己創(chuàng)建這個(gè)電子文檔,內(nèi)容如下:
在導(dǎo)入 openpyxl 模塊后,就可以使用 openpyxl.load_workbook()函數(shù)。打開 Excel 文檔
# 導(dǎo)入工作薄 wb = openpyxl.load_workbook('excelDemo/example.xlsx') # 加載工作薄 wb.sheetnames # 獲取當(dāng)前所有工作表的名稱, 返回一個(gè)列表 wb.active # 獲取當(dāng)前活躍的工作表從工作簿中取得工作表
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' sheet = wb['Sheet1'] # 工作表 sheet.title # 獲取當(dāng)前活動(dòng)表的名稱 sheet.cell(row=1, column=2) # 獲取單元格指定行和指定列的內(nèi)容表中取得單元格
Cell 對象有一個(gè) value 屬性,不出意外,它包含這個(gè)單元格中保存的值。Cell 對象也有 row、column 和 coordinate 屬性,提供該單元格的位置信息。
row屬性給出的是整數(shù) 1,column 屬性給出的是’B’,coordinate 屬性給出的是’B1’。
cell = sheet['A1'] cell_value = sheet['A1'].value cell.row, cell.column cell.coordinate4. 工作簿、工作表、單元格
下面是從電子表格文件中讀取單元格涉及的所有函數(shù)、方法和數(shù)據(jù)類型。一個(gè)完整的操作過程如下:
- 導(dǎo)入 openpyxl 模塊。
- 調(diào)用 openpyxl.load_workbook()函數(shù)。
- 取得 Workbook 對象。
- 調(diào)用 wb.sheetnames和 wb.active 獲取工作簿詳細(xì)信息。
- 取得 Worksheet 對象。
- 使用索引或工作表的 cell()方法,帶上 row 和 column 關(guān)鍵字參數(shù)。
- 取得 Cell 對象。
- 讀取 Cell 對象的 value 屬性
一個(gè)完整的案例代碼如下:
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' import openpyxl# 1. 讀取excel文檔 wb = openpyxl.load_workbook('excelDemo/example.xlsx') # # 返回一個(gè)workbook對象, 有點(diǎn)類似于文件對象; # print(wb, type(wb))# 2. 在工作薄中取得工作表 # print(wb.get_sheet_names()) # 返回一個(gè)列表, 存儲(chǔ)excel表中所有的sheet工作表; print(wb.sheetnames)# 返回一個(gè)worksheet對象, 返回當(dāng)前的活動(dòng)表; # print(wb.get_active_sheet()) # print(wb.active)# 3. 獲取工作表中, 單元格的信息 # wb.get_sheet_by_name('Sheet1') sheet = wb['example'] print(sheet['A1']) print(sheet['B1'].value)cell = sheet['B1'] print(cell.row, cell.column)print(sheet.cell(row=3, column=2)) print(sheet.cell(row=3, column=2).value) print(sheet.cell(row=3, column=2, value='www'))# sheet的屬性print(sheet.max_column) print(sheet.max_row) print(sheet.title) sheet.title = 'example' print(sheet.title)for row in sheet.rows:for cell in row:print(cell.value, end='\t')print('\n')wb.save(filename="excelDemo/example.xlsx")總結(jié)
以上是生活随笔為你收集整理的python与Excel的完美结合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python re 模块中,如何使用反斜
- 下一篇: python两种生成md5的方法