在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)
设置合并后样式(可选):
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()) # 查看合并后的数据
注意事项:
根据需求选择合适的方法,openpyxl适合直接操作单元格,Spire.XLS提供更简洁的API,而pandas更适合数据分析场景。
评论前必须登录!
注册