python自动化系列:轻松合并Excel单元格

作品名称:轻松合并Excel单元格
开发环境:PyCharm 2023.3.4 + python3.7
用到的库:pandas、openpyxl



实现过程
一、代码设计
-
导入必要的库:
pandas:用于数据分析和处理。openpyxl:用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件。-
读取Excel文件:
file_path:定义了要处理的Excel文件的路径。df = pd.read_excel(file_path):使用pandas的read_excel函数读取Excel文件,并将其存储在DataFramedf中。-
创建一个新的工作簿和工作表:
wb = load_workbook(file_path):使用openpyxl的load_workbook函数加载Excel文件,以便进行编辑。ws = wb.active:获取工作簿中活动的工作表。-
获取数据行数和列数:
max_row:获取工作表中的最大行数。max_col:获取工作表中的最大列数。-
创建一个字典来存储每个“采购物品”的起始和结束行号:
merge_dict:用于存储每个“采购物品”对应的起始行和结束行。-
遍历数据行,识别相同的“采购物品”:
-
从第二行开始遍历(假设第一行是标题行),检查每行的“采购物品”。 -
如果“采购物品”已存在于 merge_dict中,并且当前行号紧接着上一次出现该物品的行号,则更新结束行号。 -
如果“采购物品”不连续出现,则在 merge_dict中为该物品创建新的合并范围。 -
合并单元格:
-
遍历 merge_dict字典,对于每个有合并范围的“采购物品”,使用merge_cells方法合并单元格。 -
设置合并后的单元格对齐方式:
-
对于每个合并范围的起始单元格,设置水平和垂直对齐方式为居中。 -
保存工作簿到文件:
wb.save('merged_采购表.xlsx'):将修改后的工作簿保存为新的Excel文件。
"""轻松合并Excel单元格"""import pandas as pdfrom openpyxl import load_workbookfrom openpyxl.styles import Alignment# 读取Excel文件file_path = '采购表.xlsx' # 请替换为你的文件路径df = pd.read_excel(file_path)# 创建一个新的工作簿和工作表wb = load_workbook(file_path)ws = wb.active# 获取数据行数和列数max_row = ws.max_rowmax_col = ws.max_column# 创建一个字典来存储每个“采购物品”的起始和结束行号merge_dict = {}# 遍历数据行,识别相同的“采购物品”for row in range(2, max_row + 1):item = ws.cell(row=row, column=2).valueif item in merge_dict:if merge_dict[item]['end'] + 1 == row: # 只有当连续时才更新结束行号merge_dict[item]['end'] = rowelse:# 如果不连续,则开始新的合并范围merge_dict[item] = {'start': row, 'end': row}else:merge_dict[item] = {'start': row, 'end': row}# 合并单元格for item, rows in merge_dict.items():if rows['start'] != rows['end']:ws.merge_cells(start_row=rows['start'], start_column=2, end_row=rows['end'], end_column=2)# 设置合并后的单元格对齐方式for item, rows in merge_dict.items():cell = ws.cell(row=rows['start'], column=2)cell.alignment = Alignment(horizontal="center", vertical="center")# 保存工作簿到文件wb.save('merged_采购表.xlsx')
二、结语
以上就是本次分享的全部内容,如果你有任何疑问或想要分享你的自动化办公经验,我们的评论区永远为你敞开。你的每一个点赞和转发,都是对我们最大的支持和鼓励!
想要深入学习并获取文中的完整代码吗?很简单,关注我们的公众号,并回复文章标题,即可立即获取。
再次感谢你的阅读,期待在下一次分享中与你相见!
精选阅读
python自动化系列:将Excel表格中的学生信息自动填充到一个word文档
夜雨聆风