Python第三方常用模塊openpyxl的簡單介紹
openpyxl
openpyxl模塊屬於第三方模塊,是一個在 python 中能夠處理 excel 文件的模塊,還有比較出名的是xlrd、xlwt 分別控制excel文件的讀寫,這倆個能夠兼容所有版本的文件。openpyxl 針對 excel 2003版本之前的兼容性可能不好 但是功能更加強大。
excel文件的版本及後綴
2003版本之前 excel的文件後綴是xls
2003版本之後 excel的文件後綴是xlsx、csv
創建文件
Workbook() —創建 excel 文件
使用 openpyxl 創建文件。隻需導入Workbook類
from openpyxl import Workbook wb = Workbook() # 一個 excel 文件創建成功
Workbook.create_sheet() —創建 excel 工作簿
Workbook.create_sheet() 可以創建自定義名稱的工作簿。括號裡的參數是工作簿名稱,還有一個參數是工作簿的位置,也可以不寫
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet('用戶信息表', 0) # 創建瞭一個用戶信息表並放在第一位,如下圖
Sheet 工作簿是自動生成的
可以創建多個工作簿,並且它們按順序排列。
Worksheet.title —給工作簿重命名
使用 Worksheet.title屬性更改表名稱
from openpyxl import Workbook wb = Workbook() # 創建 excel 文件 ws1 = wb.create_sheet('用戶信息表', 0) # 創建工作簿用戶信息表放在第一位 ws2 = wb.create_sheet('bank_info') # 創建工作簿bank_info ws1.title = 'user_info' # 更改工作簿用戶信息表的名稱 '''用代碼保存一下後,如下圖所示'''
用戶信息表 被改名成 user_info
ws.sheet_properties.tabColor = " " 修改標題背景
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet('用戶信息表', 0) ws1.sheet_properties.tabColor = 'FF6666' # 將標題背景改為指定RRGGBB顏色代碼 '''用代碼保存一下後,如下圖所示'''
變得更好看瞭…
Workbook.sheetname —查看 excel 所有工作簿
返回包含 excel 文件下所有工作簿名稱的列表
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet('用戶信息表', 0) print(wb.sheetnames) 打印結果 ['用戶信息表', 'Sheet']
Workbook.copy_worksheet() —創建工作表的副本
Workbook.copy_worksheet()方法可以在單個工作簿中創建工作表的副本。 僅復制單元格(包括值、樣式、超鏈接和註釋)和某些工作表屬性(包括尺寸、格式和屬性)。不會復制所有其他工作簿/工作表屬性 – 例如圖像、圖表。
獲取修改數據
訪問一個單元格
在 excel 中可以通過位置找到裡面的內容,同樣使用代碼也能通過位置找到內容。
Worksheet[ ]
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet('用戶信息表', 0) ws1['A1'] = 'XWenXiang' # ws1['A1'] 代表的是該表中的 A1 位置,我們可以將數據直接賦值給它 '''用代碼保存一下後,如下圖所示'''
此時的 A1 被填入內容 XWenXiang
Worksheet.cell()
----'除瞭直接獲取位置還可以使用 Worksheet.cell()方法'----- from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet('用戶信息表', 0) ws1.cell(row=4, column=2, value=10) 此方法是通過指定坐標的方式賦值,其中 row 參數代表行數, column 代表列數,value 是填入的數據。 '''用代碼保存一下後,如下圖所示'''
在第2列第4行的位置填入數字10
Worksheet.append()
Worksheet.append() 可以同時寫入多個數據。
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet('用戶信息表', 0) ws1.append(['name', 'age', 'gender']) ws1.append(['XWenXiang', '15', 'man']) # 要用 [] 括起來 '''用代碼保存一下後,如下圖所示'''
批量寫入數據,重復數據還可以加一個循環寫入。
公式
模塊裡使用的公式和 excel 中的公式是一樣的
ws1['A6'] = '=sum(A4:A5)' # 對A4和A5進行求和並寫入到A6
訪問多個單元格
可以使用切片訪問單元格范圍
x = ws['A1':'C2'] x1 = ws['C'] x2 = ws['C:D'] x3 = ws[10] x4 = ws[5:10]
Worksheet.values —獲取單元格值
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet('用戶信息表', 0) ws1.append(['name', 'age', 'gender']) ws1.append(['XWenXiang', '15', 'man']) for row in ws1.values: print(row) 打印結果: ('name', 'age', 'gender') ('XWenXiang', '15', 'man')
保存文件
保存工作簿最簡單、最安全的方法是使用 對象的 Workbook.save() 方法 Workbook。
在前面的代碼示例都沒有將保存代碼加入。
wb = Workbook() wb.save('balances.xlsx') # balances.xlsx 是保存的路徑,也就是文件名。 編輯完要保存才行。
打開文件
openpyxl.load_workbook() —讀取 excel 文件
和 Workbook 寫入一樣,使用 openpyxl.load_workbook() 可以打開現有工作簿。
from openpyxl import load_workbook # 導入 load_workbook wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True) # ex_a.xlsx是文件名 print(wb.sheetnames) # 打印所有工作簿的名稱
讀取工作簿數據
方式一 from openpyxl import load_workbook wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True) ws = wb['用戶信息表'] # 拿到工作薄對象 print(ws['A1'].value) # 取出工作薄對象中 A1 位置的值
方式二 from openpyxl import load_workbook wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True) ws = wb['用戶信息表'] print(ws.cell(row=2, column=1).value) # 通過行與列的形式來取值
方式三(逐行讀取) from openpyxl import load_workbook wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True) ws = wb['用戶信息表'] for row in ws.rows: # 獲取每一行的數據 for data in row: # 獲取每一行中單元格的數據 print(data.value) # 打印單元格的值
總結
到此這篇關於Python第三方常用模塊openpyxl的文章就介紹到這瞭,更多相關Python openpyxl模塊介紹內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python 操作 Excel 之 openpyxl 模塊
- 詳解Python操作Excel之openpyxl
- python技巧分享Excel創建和修改
- python之openpyxl模塊的安裝和基本用法(excel管理)
- python 使用openpyxl讀取excel數據