引言
Microsoft Excel是一款功能強大的辦公軟體,眾所周知。然而,在一些實際開發場景中,我們需要用程序自動化完成Excel中的一些操作,比如:合併單元格、拆分單元格、讀取和寫入數據等等。在Python中,我們可以使用Openpyxl庫來操作Excel文件,Openpyxl是一款用於讀寫Excel文件的Python擴展包,完全由Python編寫,非常方便實用。
Openpyxl的安裝
在使用Openpyxl之前,需要先安裝該庫,我們可以通過pip來進行安裝,如下所示:
pip install openpyxl
Excel文件基本操作
新建Excel文件
使用Openpyxl創建新的Excel文件非常簡單,只需要導入工作簿、表格等對象即可,如下所示:
import openpyxl
wb = openpyxl.Workbook() # 新建一個工作簿
ws = wb.active # 獲取當前工作簿中的表格
wb.save('example.xlsx') # 保存文件
打開並讀取Excel文件
與創建一個新的Excel文件類似,我們也可以使用Openpyxl打開已有的Excel文件,並對其進行讀取。使用load_workbook()函數來讀取Excel文件,使用active屬性獲取當前工作表,如下所示:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 打開已有的Excel文件
ws = wb.active # 獲取當前工作簿中的表格
print(ws['A1'].value) # 讀取單元格A1中的內容
wb.close() # 關閉Excel文件
寫入Excel文件
與讀取Excel文件類似,我們也可以使用Openpyxl來對Excel文件進行寫入操作。使用active屬性獲取當前工作表,並使用cell()方法進行單元格操作,如下所示:
import openpyxl
wb = openpyxl.Workbook() # 新建一個工作簿
ws = wb.active # 獲取當前工作簿中的表格
ws['A1'] = 'Hello, Openpyxl!' # 寫入單元格A1中的內容
wb.save('example.xlsx') # 保存Excel文件
wb.close() # 關閉Excel文件
工作表操作
在Excel文件中,我們可以有多個工作表,使用Openpyxl可以實現對工作表的操作,如下所示:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 打開已有的Excel文件
print(wb.sheetnames) # 輸出工作表名列表
ws = wb.create_sheet('New Sheet') # 新建工作表
print(wb.sheetnames) # 輸出工作表名列表
ws1 = wb['Sheet1'] # 選擇指定的工作表
wb.remove(ws1) # 刪除指定的工作表
wb.save('example.xlsx') # 保存Excel文件
wb.close() # 關閉Excel文件
單元格操作
在Excel中,單元格是最基本的元素之一,Openpyxl提供了豐富的單元格操作函數,如下所示:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 打開已有的Excel文件
ws = wb.active # 獲取當前工作簿中的表格
ws['A1'] = 'Hello, Openpyxl!'
ws['B1'] = 'Nice to see you'
cell = ws.cell(row=1, column=3) # 獲取單元格
cell.value = 'Python'
cell.font = openpyxl.styles.Font(size=14, bold=True, italic=True) # 單元格字體設置
cell.border = openpyxl.styles.Border(left=openpyxl.styles.Side(style=None), right=openpyxl.styles.Side(style=None), top=openpyxl.styles.Side(style=None), bottom=openpyxl.styles.Side(style='medium')) # 單元格邊框設置
wb.save('example.xlsx') # 保存Excel文件
wb.close() # 關閉Excel文件
Openpyxl高級操作
合併單元格
在Excel中,我們可以將多個單元格合併為一個,Openpyxl提供了merge_cells()函數來實現單元格的合併操作,如下所示:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 打開已有的Excel文件
ws = wb.active # 獲取當前工作簿中的表格
ws.merge_cells('A1:B2') # 合併單元格A1到B2
wb.save('example.xlsx') # 保存Excel文件
wb.close() # 關閉Excel文件
拆分單元格
所謂的拆分單元格,即將一個單元格拆分成多個小的單元格,Openpyxl同樣提供了豐富的單元格操作函數,如下所示:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 打開已有的Excel文件
ws = wb.active # 獲取當前工作簿中的表格
ws.merge_cells('A1:B2') # 合併單元格A1到B2
ws.unmerge_cells('A1:B2') # 拆分單元格A1到B2
wb.save('example.xlsx') # 保存Excel文件
wb.close() # 關閉Excel文件
單元格樣式設置
對於單元格的樣式設置,Openpyxl提供了Style類來進行樣式的操作,如下所示:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 打開已有的Excel文件
ws = wb.active # 獲取當前工作簿中的表格
cell = ws['A1']
cell.value = 'Openpyxl Style'
cell.font = openpyxl.styles.Font(size=14, bold=True)
cell.alignment = openpyxl.styles.Alignment(horizontal='center', vertical='center')
cell.fill = openpyxl.styles.PatternFill('solid', fgColor='EEE8AA')
wb.save('example.xlsx') # 保存Excel文件
wb.close() # 關閉Excel文件
批量寫入數據
在開發中,有時需要批量向Excel表中寫入數據,Openpyxl提供了多種方式來批量寫入數據,其中最常用的方式是使用for循環。如下所示:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') # 打開已有的Excel文件
ws = wb.active # 獲取當前工作簿中的表格
rows = [
['Name', 'Age'],
['Lucy', 22],
['Tom', 25],
['Jerry', 18]
]
for row in rows:
ws.append(row)
wb.save('example.xlsx') # 保存Excel文件
wb.close() # 關閉Excel文件
總結
到這裡,我們通過Openpyxl學習了如何創建、讀取和寫入Excel文件,同時也掌握了一些高級操作技巧,比如批量寫入數據、合併單元格、拆分單元格和樣式設置。希望這篇文章對你學習Python操作Excel的過程有所幫助。
原創文章,作者:KOEBK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331483.html