在Python中合并Excel單元格,常用openpyxl
庫實現。以下是詳細步驟和示例代碼:
方法一:使用 openpyxl 庫
步驟說明:
-
安裝庫:
pip install openpyxl
-
導入庫并加載文件:
from openpyxl import load_workbook# 加載Excel文件 wb = load_workbook('示例.xlsx') sheet = wb['Sheet1'] # 選擇工作表
-
合并單元格:
- 按范圍合并(如A1到B2):
sheet.merge_cells('A1:B2')
- 按行列號合并(如第1行第1列到第2行第2列):
sheet.merge_cells(start_row=1, start_column=1, end_row=2, end_column=2)
- 按范圍合并(如A1到B2):
-
設置合并后樣式(可選):
from openpyxl.styles import Alignment# 設置內容水平+垂直居中 sheet['A1'].alignment = Alignment(horizontal="center", vertical="center")
-
保存文件:
wb.save('合并結果.xlsx')
完整代碼示例:
from openpyxl import load_workbook
from openpyxl.styles import Alignment# 加載工作簿和工作表
wb = load_workbook('示例.xlsx')
sheet = wb.active # 或通過名稱選擇:wb['Sheet1']# 合并A1到D1單元格
sheet.merge_cells('A1:D1')
# 設置合并后的單元格內容居中
sheet['A1'].alignment = Alignment(horizontal="center", vertical="center")
sheet['A1'] = "合并后的標題" # 寫入內容# 保存修改
wb.save('合并結果.xlsx')
方法二:使用 Spire.XLS 庫
步驟說明:
-
安裝庫:
pip install spire.xls
-
合并單元格:
from spire.xls import Workbook, ExcelVersion# 創建Workbook對象并加載文件 wb = Workbook() wb.load_from_file('示例.xlsx') sheet = wb.worksheets[0]# 合并B2到D5單元格 sheet.range['B2:D5'].merge()# 保存文件 wb.save_to_file('Spire合并結果.xlsx', ExcelVersion.Version2013)
方法三:使用 pandas + openpyxl(處理合并數據)
若需讀取已合并的單元格數據,可用pandas
結合openpyxl
引擎:
import pandas as pd# 讀取Excel文件(自動處理合并單元格)
df = pd.read_excel('示例.xlsx', engine='openpyxl')
print(df.head()) # 查看合并后的數據
注意事項:
- 合并后數據保留:合并單元格時,只有左上角單元格的數據會被保留,其他單元格內容會被清空。
- 取消合并:使用
sheet.unmerge_cells('A1:B2')
可撤銷合并。 - 批量合并:可通過循環遍歷行列實現條件合并(如按分類合并標題行)。
根據需求選擇合適的方法,openpyxl
適合直接操作單元格,Spire.XLS
提供更簡潔的API,而pandas
更適合數據分析場景。