openpyxl 复制带格式的Excel 表格,并且合并
参考https://blog.csdn.net/weixin_45081575/article/details/124144987
实现了把多个 excel 文件合并成一个 excel,保存格式
import os
import copy
import openpyxl
from openpyxl.utils import get_column_letter as gcl
# 指定输入、输出文件路径
class SplitMultiSheet:
def get_all_sheet(self, files):
new_wb = openpyxl.Workbook()
for file in files:
wb = openpyxl.load_workbook(filename=file)
for sn in wb.sheetnames:
sheet = wb[sn]
sheet2 = new_wb.create_sheet(sn)
sheet2.sheet_properties.tabColor = sheet.sheet_properties.tabColor
# 开始处理合并单元格形式为“(<CellRange A1:A4>,),替换掉(<CellRange 和 >,)' 找到合并单元格
wm = list(sheet.merged_cells)
if len(wm) > 0:
for i in range(0, len(wm)):
cell2 = str(wm[i]).replace('(<CellRange ', '').replace('>,)', '')
sheet2.merge_cells(cell2)
#
for i, row in enumerate(sheet.iter_rows()):
sheet2.row_dimensions[i + 1].height = sheet.row_dimensions[i + 1].height
for j, cell in enumerate(row):
sheet2.column_dimensions[gcl(j + 1)].width = sheet.column_dimensions[gcl(j + 1)].width
sheet2.cell(row=i + 1, column=j + 1, value=cell.value)
# 设置单元格格式
source_cell = sheet.cell(i + 1, j + 1)
target_cell = sheet2.cell(i + 1, j + 1)
target_cell.fill = copy.copy(source_cell.fill)
if source_cell.has_style:
target_cell._style = copy.copy(source_cell._style)
target_cell.font = copy.copy(source_cell.font)
target_cell.border = copy.copy(source_cell.border)
target_cell.fill = copy.copy(source_cell.fill)
target_cell.number_format = copy.copy(source_cell.number_format)
target_cell.protection = copy.copy(source_cell.protection)
target_cell.alignment = copy.copy(source_cell.alignment)
# 第一个 Sheet 默认为 Sheet,可以选择删除
if 'Sheet' in new_wb.sheetnames:
del new_wb['Sheet']
new_wb.save(f"res.xlsx")
new_wb.close()
def main(self):
files = []
for file in os.listdir("."):
if file.endswith(".xlsx") and os.path.basename(file) != "res.xlsx":
files.append(file)
self.get_all_sheet(files)
if __name__ == '__main__':
sms = SplitMultiSheet()
sms.main()
print('Done.')
openpyxl 复制带格式的Excel 表格,并且合并相关推荐
- EXCEL表格数据合并
EXCEL表格数据合并 主要针对同一个excel文件中包含多个sheet,需要将所有的数据进行汇总. 1.表格数据展示: 2.数据合并步骤: 打开excel表格(当前表格或者新建表格均可),选择数据- ...
- html合并的列内容不居中显示,表格不能合并居中 excel表格不能合并单元格怎么办...
Excel 单元格不能合并了,合并单元格选项是灰色的无法合并单元格,主要是因为几个单元格之间套用了格式,所以无法合并单元格. 具体的解决方法如下: 选中相应的单元格,然后,点击工具栏上"设计 ...
- php 导出csv设置列宽度,php数据库导出excel表格数据-php从数据库导出csv格式的Excel表格是,字段本身就......
PHP如何将查询出来的数据导出成excel表格(最好做... $objPHPExcel->getActiveSheet()->getDefaultColumnDimension(A)-&g ...
- excel表格内容合并的技巧?
今天跟大家分享一下excel表格内容合并的技巧? 1.打开演示文件,如下图要求将多个表格合并到一起. 2.首先我们点击下图选项 3.点击[汇总拆分]-[合并多表] 4.勾选要合并的工作表 5.然后根据 ...
- 如何通过VB合并Excel单元格以及设置Excel行高?VB创建Excel表格,合并单元格,生成图形等操作
如何通过VB合并Excel单元格以及设置Excel行高? 例如:我想把第一列的第4,5,6,7行合并...我在怎样让合并单元格里的字居中,怎样改变字体. 请不吝赐教... ============== ...
- 各类Excel表格批量合并问题的实现思路与案例
作者:小小明 在日常工作中,可能会遇到各类表格合并的需求.这类需求只要搞懂核心原理都很简单,本质都是万变不离其宗,相信大部分读者都能解决大部分需求. 基本思路: 遍历需要被合并的文件 读取数据,并合并 ...
- python示例--下载mysql数据库中数据--excel表格,合并表格
用到的知识点 1.mysql连接 2.pandas的concat数据合并 3.路径等 import threading import requests import json import pymys ...
- 使用计算机制作数字文本格式,电脑excel表格如何将文本格式变成数字格式
电脑excel表格如何将文本格式变成数字格式 文本格式和数字格式的单元格显示是有部分不一样的,今天小编就告诉大家电脑excel表格如何将文本格式变成数字格式. 具体如下: 1.首先我们打开电脑中的Ex ...
- Python:Excel自动录入、Excel表格快速合并(附有源代码)
文章目录 Jacob_E办公程序 Jacob_E功能一:Excel数据自动录入 感受 源代码 Jacob_E办公程序 通过一个月的Python语法基础课学习,小编也终于写出了自己的第一个程序!完成程序 ...
最新文章
- Android --- 从相册中选择图片或者拍着选择图片遇到的问题
- mysql怎么查看索引情况_mysql 查看索引使用情况
- adb shell命令_[Android]adb的使用
- java接口vm和dto的区别_第十八节:详解Java抽象类和接口的区别
- java for 死循环_一个Java For语句死循环的例子源码
- 算法:凸多边形最优三角剖分
- 已知直线方程,计算直线对应的向量
- Linux下ppp拨号+电信3G模块
- linux终端如何分栏,动态分栏布局实现
- 计算机开机按f1,开机要按F1怎么解决?电脑开机不按F1进去系统的方法
- 初三毕业班主任压力过大割喉自尽
- IntelliJ IDEA 文件未被识别成maven工程
- 5-3 凸多边形面积
- 森宇文化全授权代理《彩虹护卫队》亮相戛纳开启动漫全产业链布局
- 塔望食业洞察|预制菜行业市场现状、发展趋势及未来思考
- c++学习纲要(入门必看!!!学习笔记【建议收藏!!!】)怒肝整理数万字,只求君一赞
- XDisplay 安装教程
- Poc/Exp漏洞验证利用脚本编写
- gdbt java_GBDT算法详解与代码实现
- php导入excel读取内容