Python excel合并居中值相同的单元格实例代码

 更新时间:2022年06月02日 10:05:30   作者:一根咸鱼_  
在工作中遇到了合并具有相同条件的单元格合并的问题,下面这篇文章主要给大家介绍了关于Python excel合并居中值相同单元格的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

这里要说明一下,本文包含的代码其中一部分并不是自己写的,是我找了很多文章拼凑出来的,比如如何找相同内容的单元格、怎么合并、怎么居中等等。出处许多,这边就不一个个放链接了。就当做一份自己写的学习笔记供大家参考。

本文结构 是分段讲解代码,文末放全部的代码

处理前的单元格

  ----------------------->

可以看到有一些名字是重复的,我们现在要做的就是把这些重复的名字合并居中,程序执行完的效果如图。

(大家可能会说,这不是多此一举吗,直接点excel中的合并并居中不就好了? 但是在用程序处理大批量的excel表的时候,是非常减少人工成本的!!!!)

代码分解讲解

1. 首先,代码的思路 先将A列的内容读出放入一个列表中。

sumList = []
 
for i in range(2, sheet.max_row):
    value = sheet.cell(row=i, column=1).value
    if value:
        sumList.append(value)
    else:
        break

如果你要合并并居中的内容不在A列只要更改“column=”中的内容即可。

2. 进行合并单元格操作

preRow = 0
finRow = 0
flag = sumList[0]
 
for i in range(len(sumList)):
    if sumList[i] != flag:
        flag = sumList[i]
        finRow = i - 1
        if finRow >= preRow:
            sheet.merge_cells("A{}:A{}".format(preRow+2, finRow+2))
            preRow = finRow + 1
    if i == len(sumList) - 1:
        finRow = i
        sheet.merge_cells("A{}:A{}".format(preRow+2, finRow+2))

这里注意,如果你要合并的内容是从第二行开始的(我的第一行是表头),就在format中preRow和finRow的值加2就可以了(因为openpyxl是用1开始计数)

同样,如果是内容是从第三行开始就在format中preRow和finRow的值加 3即可。

着急的小伙伴可以不用看懂这部分代码,只要按照我上面的提示修改内容即可直接复制黏贴这段代码拿过来用!!

3. 进行第一列单元格居中操作

wsArea = sheet["A{}:A{}".format(2, 2+len(sumList))]
for i in wsArea:
    for j in i:
        j.alignment = Alignment(horizontal='center', vertical='center')

本文全部代码

import os
import openpyxl
from openpyxl.styles import Alignment
 
# 获得当前py文件的路径
path = os.getcwd()
 
# 打开py文件目录下的名为test.xlsx文件的第一张sheet页
wb = openpyxl.load_workbook(path + "/test.xlsx")
sheet = wb["Sheet1"]
 
# 先把A列的所有内容放入一个List中
sumList = []
 
for i in range(2, sheet.max_row):
    value = sheet.cell(row=i, column=1).value
    if value:
        sumList.append(value)
    else:
        break
 
# 开始合并单元格
preRow = 0
finRow = 0
flag = sumList[0]
 
for i in range(len(sumList)):
    if sumList[i] != flag:
        flag = sumList[i]
        finRow = i - 1
        if finRow >= preRow:
            sheet.merge_cells("A{}:A{}".format(preRow+2, finRow+2))
            preRow = finRow + 1
    if i == len(sumList) - 1:
        finRow = i
        sheet.merge_cells("A{}:A{}".format(preRow+2, finRow+2))
 
# 居中单元格
wsArea = sheet["A{}:A{}".format(2, 2+len(sumList))]
for i in wsArea:
    for j in i:
        j.alignment = Alignment(horizontal='center', vertical='center')
 
# 保存表
wb.save(path + '/test1.xlsx')
 

总结

这篇代码的核心我已经分别的讲述了,可告诉大家如何改可以改成自己喜欢的代码,和执行效果,希望对大家有用~

到此这篇关于Python excel合并居中值相同单元格的文章就介绍到这了,更多相关Python excel合并单元格内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Windows系统下安装Python的SSH模块教程

    Windows系统下安装Python的SSH模块教程

    这篇文章主要介绍了Windows系统下安装Python的SSH模块教程,本文涵盖了pycrypto、ecdsa、paramiko、OpenSSH、SSH等模块的安装,需要的朋友可以参考下
    2015-02-02
  • 解决python3在anaconda下安装caffe失败的问题

    解决python3在anaconda下安装caffe失败的问题

    下面小编就为大家带来一篇解决python3在anaconda下安装caffe失败的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • conda install nb_conda失败原因分析及解决

    conda install nb_conda失败原因分析及解决

    这篇文章主要给大家介绍了关于conda install nb_conda失败原因分析及解决方法,conda install nb_conda显示错误的原因可能有很多,具体原因取决于你的系统环境和安装的conda版本,需要的朋友可以参考下
    2023-11-11
  • YOLOv5车牌识别实战教程(二)理论基础

    YOLOv5车牌识别实战教程(二)理论基础

    这篇文章主要介绍了YOLOv5车牌识别实战教程(二)理论基础,在这个教程中,我们将一步步教你如何使用YOLOv5进行车牌识别,帮助你快速掌握YOLOv5车牌识别技能,需要的朋友可以参考下
    2023-04-04
  • python爬虫 线程池创建并获取文件代码实例

    python爬虫 线程池创建并获取文件代码实例

    这篇文章主要介绍了python爬虫 线程池创建并获取文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python实现购物车功能

    python实现购物车功能

    这篇文章主要为大家详细介绍了python实现购物车功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Python对excel的基本操作方法

    Python对excel的基本操作方法

    这篇文章主要介绍了Python对excel的基本操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python操作列表之List.insert()方法的使用

    Python操作列表之List.insert()方法的使用

    这篇文章主要介绍了Python操作列表之List.insert()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python用内置模块来构建REST服务与RPC服务实战

    Python用内置模块来构建REST服务与RPC服务实战

    这篇文章主要介绍了Python用内置模块来构建REST服务与RPC服务实战,python在网络方面封装一些内置模块,可以用很简洁的代码实现端到端的通信,比如HTTP、RPC服务,下文实战详情,需要的朋友可以参考一下
    2022-09-09
  • Python Flask 转换器的使用详解

    Python Flask 转换器的使用详解

    这篇文章主要介绍了Python_Flask 转换器的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09

最新评论