当前位置: 首页 > news >正文

python自动化第一篇—— 带图文的execl的自动化合并

简述

  最近接到一个需求,需要为公司里的一个部门提供一个文件上传自动化合并的系统,以供用户稽核,谈到自动化,肯定是选择python,毕竟python的轮子多。比较了市面上几个用得多的python库,我最终选择了xlwings。但不妨我们来比较另外的库,openpyxl。pandas当然很棒,但pandas是数据分析的专家,用在这里不太合适。

正文

环境

  python3.10.13和office16。吐糟一下,openpyxl和xlwings都需要调用微软的execl接口,wps不支持,麻烦。

openpyxl

    我开始是首先想尝试用openpyxl,但发现openpyxl无法复制图像,所以我放弃了,但代码顺便贴上来,有需要自取。

from openpyxl import load_workbook# 定义要合并的Excel文件列表和对应的工作表名称
excel_files = {'file1.xlsx': 'Sheet1','file2.xlsx': 'Sheet2','file3.xlsx': 'Sheet3'
}# 创建一个新的Excel文件
merged_book = None# 循环遍历每个Excel文件
for file, sheet_name in excel_files.items():# 打开要复制的Excel文件book = load_workbook(file)# 复制每个工作表到新的Excel文件的对应工作表for source_sheet in book.sheetnames:source_sheet = book[source_sheet]if merged_book is None:# 如果是第一个文件,直接复制工作表到新的Excel文件merged_book = load_workbook(file)target_sheet = merged_book[sheet_name]else:# 如果不是第一个文件,创建新的工作表,并复制工作表的内容到新的工作表target_sheet = merged_book.create_sheet(title=sheet_name)for row in source_sheet.iter_rows(values_only=True):target_sheet.append(row)# 保存合并后的Excel文件
merged_book.save('merged_file.xlsx')

xlwings

 不废话贴代码

import xlwings as xw# 打开源Excel文件
source_file = "file1.xlsx"
wb_source = xw.Book(source_file)# 创建目标Excel文件
target_file = "file2.xlsx"
wb_target = xw.Book(target_file)# 获取源和目标的工作表
source_sheet = wb_source.sheets[0]
target_sheet = wb_target.sheets[0]# 复制源Excel文件中的数据和图片到目标Excel文件
source_sheet.api.Copy(Before=target_sheet.api)# 保存目标Excel文件
wb_target.save()
#wb_target.close()# 关闭源Excel文件
#wb_source.close()
#杀死execl进程,否则execl一直打开
wb_source.app.kill() 

http://www.lryc.cn/news/231142.html

相关文章:

  • 使用 Redis 实现分布式锁,解决分布式锁原子性、死锁、误删、可重入、自动续期等问题(使用SpringBoot环境实现)
  • mysql oracle统计报表每天每月每年SQL
  • 通过Python设置及读取PDF属性,轻松管理PDF文档
  • 10. 深度学习——模型优化
  • macos 上彻底卸载 DevEco Studio
  • Nginx(五) break,if,return,rewrite和set指令的执行顺序深究
  • 八大学习方法(金字塔模型、费曼学习法、布鲁姆学习模型)
  • K8S的基础知识
  • java:基于jjwt写一个jwt工具类
  • AK F.*ing leetcode 流浪计划之半平面求交
  • docker搭建zokeeper集群、kafka集群
  • 【java学习—十四】反射机制调用指定方法、指定属性(5)
  • PC端微信@所有人逻辑漏洞
  • 如何在Windows 10中进行屏幕截图
  • 【nlp】2.4 GRU模型
  • 国科云:浅谈DNS缓存投毒常见类型和防御策略
  • Linux命令(120)之tcpdump
  • 2311rust对接C
  • MYSQL字符串函数详解和实战(字符串函数大全,内含示例)
  • 从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
  • Angular 指令介绍及使用(三)
  • 小学生加减乘除闯关运算练习流量主微信小程序开发
  • 普通测径仪升级的智能测径仪 增添11大实用功能!
  • vue做的一个一点就转的转盘(音乐磁盘),点击停止时会在几秒内缓慢停止,再次点击按钮可以再次旋转,
  • Spring6(一):入门案例
  • Linux中报错no space device解决思路
  • vue3使用element-plus
  • 高质量实时渲染笔记
  • 云原生下GIS服务规划与设计
  • VBA 宏For WPS(完整版)-供大家学习研究参考