1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 312|回复: 2

[求助] 请问下怎么合并多个工作簿保留原有格式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-12-30 09:54 | 显示全部楼层 |阅读模式
gpt给了一个脚本:



import os
import xlwings as xw

# 获取当前文件夹路径
folder_path = os.getcwd()
new_wb = xw.Book()

# 遍历当前文件夹中的 Excel 文件
for filename in os.listdir(folder_path):
    if filename.endswith(('.xls', '.xlsx')) and not filename.startswith('~$'):
        file_path = os.path.join(folder_path, filename)
        try:
            wb = xw.Book(file_path)
            for sheet in wb.sheets:
                # 复制工作表到新工作簿
                sheet.copy(after=new_wb.sheets[-1])
            wb.close()
        except Exception as e:
            print(f"处理文件 {filename} 时出错: {e}")

# 删除新工作簿的默认工作表(如果复制了其他工作表)
if len(new_wb.sheets) > 1:  # 如果合并后有多个表,则可以删除默认的 Sheet1
    new_wb.sheets[0].delete()

# 保存合并后的工作簿
merged_file_path = os.path.join(folder_path, '合并后的工作簿.xlsx')
new_wb.save(merged_file_path)
new_wb.close()

print(f"合并完成!文件保存为:{merged_file_path}")


但是用了这个脚本,虽然字体字号、行高和原来一样,列宽却和原来的工作表不同,而且就算把列宽调到原工作表一样的数值,视角上效果也不一样。有没有什么办法能达到excel里通过对工作表“移动或复制-创建副本”来把一个工作表复制到另一个工作簿,这样新表和原表完全一模一样的效果。

TA的精华主题

TA的得分主题

发表于 2024-12-30 11:26 | 显示全部楼层
sheet.copy(after=new_wb.sheets[-1])
目前的代码就是拷贝工作表到新的文件中的嘛

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-30 11:56 来自手机 | 显示全部楼层
3190496160 发表于 2024-12-30 11:26
sheet.copy(after=new_wb.sheets[-1])
目前的代码就是拷贝工作表到新的文件中的嘛

问题是还算不上一模一样的复制,达不到手动操作的效果。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-3-27 22:25 , Processed in 0.017960 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表