乐于分享
好东西不私藏

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

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

作品介绍

作品名称:轻松合并Excel单元格

开发环境:PyCharm 2023.3.4 + python3.7

用到的库:pandas、openpyxl

作品简介:该实例用于将Excel文件中相同“采购物品”的行合并为一个单元格,并设置合并单元格的对齐方式。

实现过程

一、代码设计

  1. 导入必要的库:

    • pandas:用于数据分析和处理。
    • openpyxl:用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件。
  2. 读取Excel文件:

    • file_path:定义了要处理的Excel文件的路径。
    • df = pd.read_excel(file_path):使用pandas的read_excel函数读取Excel文件,并将其存储在DataFrame df中。
  3. 创建一个新的工作簿和工作表:

    • wb = load_workbook(file_path):使用openpyxlload_workbook函数加载Excel文件,以便进行编辑。
    • ws = wb.active:获取工作簿中活动的工作表。
  4. 获取数据行数和列数:

    • max_row:获取工作表中的最大行数。
    • max_col:获取工作表中的最大列数。
  5. 创建一个字典来存储每个“采购物品”的起始和结束行号:

    • merge_dict:用于存储每个“采购物品”对应的起始行和结束行。
  6. 遍历数据行,识别相同的“采购物品”:

    • 从第二行开始遍历(假设第一行是标题行),检查每行的“采购物品”。
    • 如果“采购物品”已存在于merge_dict中,并且当前行号紧接着上一次出现该物品的行号,则更新结束行号。
    • 如果“采购物品”不连续出现,则在merge_dict中为该物品创建新的合并范围。
  7. 合并单元格:

    • 遍历merge_dict字典,对于每个有合并范围的“采购物品”,使用merge_cells方法合并单元格。
  8. 设置合并后的单元格对齐方式:

    • 对于每个合并范围的起始单元格,设置水平和垂直对齐方式为居中。
  9. 保存工作簿到文件:

    • 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自动化系列:轻松合并文件夹内所有TXT文件
python自动化系列:比较两个txt的内容
python自动化系列:将文本(txt)文件转换为其他格式
python自动化系列:统计txt文件中单词的出现频次并倒序
python自动化系列:将多个工作簿数据分类汇总到一个工作簿
python自动化系列:一键替换文档关键词
python自动化系列:旋转PDF文件特定页面
python自动化系列:过滤文本(txt)的内容
python自动化系列:抓取财经精选新闻
python自动化系列:一键重命名文件,轻松跟踪修改历史
python自动化系列:一键删除PDF文档密码

python自动化系列:pdf页面转图片

python自动化系列:重新排列pdf页面的顺序

python自动化系列:裁剪pdf特定页面特定区域

python自动化系列:将Excel表格中的学生信息自动填充到一个word文档

python自动化系列:轻松合并PDF文件特定页面

python自动化系列:将Excel表格中的学生多条信息自动填充到一个Word文档

python自动化系列:如何轻松为PDF文件添加统一水印

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » python自动化系列:轻松合并Excel单元格

猜你喜欢

  • 暂无文章