python之xlsx合并单元格
需求背景:
工作中将数据保存xlsx文件之后,里面每一列中有很多重复的看着很不美观,需要将每一列中的相同值合并起来,是表格看起来美观简洁
处理前

处理后

直接上代码(内涵注释讲解)
"""
-*- coding: utf-8 -*-
@Time : 2022/12/6 10:10
@Author : Logan
@File : xlxs_test.py
@Comment : 合并单元格
"""
import os
import openpyxl
def merge_xlsx(file):
'''
合并单元格
:param file: 需要合并的文件
:return:
'''
# 打开文件目录下的文件的第一张sheet页
wb = openpyxl.load_workbook(os.path.join(path, file))
sheet = wb["Sheet1"]
print(sheet.max_row) # 总行数
print(sheet.max_column) # 总列数
# 将 所有的 列号保存下来
column_list = []
for i in range(1, sheet.max_column + 1):
value = sheet.cell(row=2, column=i)
# value.coordinate 获取当前值所在的坐标 ---> A1, B1, C1
column_list.append(value.coordinate[0])
print(column_list)
# 遍历每一列 去合并
for index, letter in enumerate(column_list):
sumList = []
print(sumList)
print(letter)
# 先把每一列列的所有内容放入sumList中
for i in range(2, sheet.max_row + 1):
value = sheet.cell(row=i, column=index + 1).value
if value:
sumList.append(value)
else:
sumList.append('')
print(sumList)
# 开始合并单元格
prow = 0
frow = 0
flag = sumList[0]
for i in range(len(sumList)):
if sumList[i] != flag:
flag = sumList[i]
frow = i - 1
if frow >= prow:
# merge_cells() ---> 合并指定坐标
sheet.merge_cells(f"{letter}{prow + 2}:{letter}{frow + 2}")
prow = frow + 1
if i == len(sumList) - 1:
frow = i
sheet.merge_cells(f"{letter}{prow + 2}:{letter}{frow + 2}")
print(f'合并完成一列: {letter}')
# 保存表
wb.save(os.path.join(path, file))
print(f'操作完毕')
if __name__ == '__main__':
# 需要操作的文件
file_name = 'test_xlsx.xlsx'
# 获得当前py文件的路径
path = os.getcwd()
print(os.path.join(path, file_name))
merge_xlsx(file=file_name)
python之xlsx合并单元格的更多相关文章
- python 利用三方的xlrd模块读取excel文件,处理合并单元格
目的: python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 总体思路: (1)要想实现对Excel数据的读取,需要用到第三方应用,直接应用. (2)实际操作时候和我 ...
- Java Controller下兼容xls和xlsx且可识别合并单元格的excel导入功能
1.工具类,读取单元格数据的时候,如果当前单元格是合并单元格,会自动读取合并单元格的值 package com.shjh.core.util; import java.io.IOException; ...
- python xlwt 设置单元格样式-合并单元格
xlwt模块详解--合并单元格 import xlwtworkbook = xlwt.Workbook()worksheet = workbook.add_sheet('My sheet')# 合并第 ...
- python-Excel读取-合并单元格读取
python-Excel读取-合并单元格读取(后续会补充python-Excel写入的部分) 1. python读取Excel单元格 代码包含读取Excel中数据,以及出现横向合并单元格,以及竖向合并 ...
- C# 获取Excel中的合并单元格
C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格.在取消合并单元格时需要逐个查找及取消,比较麻烦.这里分享一个简单的方法来识别Excel中的合并单元格,识别这 ...
- Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行
Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行 模版格式,图格式是最简单的格式,但实际效果不是这种,实际效果图如图2 图2 ,注意看红色部分,一对一是正常的,但是有一对多的订单 ...
- 【POI xlsx】使用POI对xlsx的单元格样式进行设置 / 使用POI对xlsx的字体进行设置
涉及到的样式都在代码中有说明: package com.it.poiTest; import java.io.FileNotFoundException; import java.io.FileOut ...
- NPOI之Excel——合并单元格、设置样式、输入公式
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- 【记录】解析具有合并单元格的Excel
最近公司让做各种数据表格的导入导出,就涉及到电子表格的解析,做了这么多天总结一下心得. 工具:NOPI 语言:C# 目的:因为涉及到导入到数据库,具有合并单元格的多行必然要拆分,而NPOI自动解析的时 ...
- 让我头疼一下午的Excel合并单元格
Excel导出常见问题 excel导出其实不算什么难事 在网上copy下模板代码,填充自己的业务数据,提供一个http接口基本就可以得到你要导出的数据了. 但是,凡事都有例外,截止今天,excel导出 ...
随机推荐
- win10系统恢复默认的照片查看器
新建一个TXT文本文档,把以下代码复制粘贴到其中: 注:你可以根据需要按同样的格式增减或修改其中的图片格式代码 Windows Registry Editor Version 5.00 ; Chang ...
- Gitlab添加K8S集群
介绍如何在Gitlab项目中添加K8S集群,以便使用K8S集群部署gitlab-runner帮我们运行gitlab的CI/CD. 参考官方文档:https://docs.gitlab.com/ee/u ...
- n维偏序 方法记录
题解 首先我们要对一个地点能否到达建立认知:一个地点能到达不仅仅是能从它的上一个点或上上个点跳到,而是能从第一个点开始跳一路跳到.就好比说,咱吃了6个包子吃饱了,但咱不能只付第6个包子的钱. 方法一: ...
- phoenix操作HBase
phoenix操作HBase 一.Phoenix简介 Phoenix,由saleforce.com 开源的一个项目,后又捐给了Apache. 它相当于一个Java 中间件,帮助开发者,像使用jdbc ...
- 2022-08-20-nas寄了就搞网络__网络升级计划_(估计又得白给)
layout: post cid: 13 title: nas寄了就搞网络? 网络升级计划 (估计又得白给) slug: 13 date: 2022/08/20 16:31:00 updated: 2 ...
- python-D3-语法入门1
Python语法注释 什么是注释 注释其实就是对一段代码的解释说明(注释是代码之母) 如何编写注释 方式1:解释说明文字前加警号 (pycharm中有快捷键ctrl+?) # 注释(单行注释) 方式2 ...
- 8.MongoDB系列之创建副本集(一)
1. 复制简介 在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃了,则从节点会从中选 ...
- springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
要实现的目的:根据登录用户.查询出当前用户具有的所有权限.然后登录系统后.根据查询到的权限信息进行不同的操作. 以下的代码是在搭好的框架之下进行的编码. 文章目录 核心实现部分. 第一种是将用户表和角 ...
- 齐博x1标签实例:标签设置取组图不存在就取内容中的图片
对于CMS或者是其它,使用下面的代码 <div class="morepic"> {volist name=":getArray($pics=$rs.picu ...
- python3使用mutagen进行音频元数据处理
python版本:python 3.9 mutagen版本:1.46.0 mutagen是一个处理音频元数据的python模块,支持多种音频格式,是一个纯粹的python库,仅依赖python标准 ...