You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Python完整复制包含富文本格式的Excel文件

如何使用Python完整复制包含富文本格式的Excel文件

嗨,我懂你想完整复制Excel文件(包括所有格式、内容)的需求!你手动用openpyxl写的代码虽然能复制部分字体样式,但其实有点舍近求远了——而且这种方式容易漏掉边框、单元格填充、合并单元格这些细节,效率也不高。下面给你两种更靠谱的方法:

方法一:直接复制整个文件(最简单高效,推荐)

如果你不需要对原Excel文件做任何修改,只是单纯复制一份一模一样的文件,用Python标准库的shutil模块就可以了。它会完整复制文件的所有内容,包括格式、公式、宏、图片这些openpyxl可能处理不了的元素,代码超简单:

import shutil

# 原文件路径
source_file = 'file_1.xlsx'
# 目标文件路径(不存在也没关系,会自动创建)
target_file = 'file_1_copy.xlsx'

# 执行复制,copy2会保留文件元数据(如创建/修改时间)
shutil.copy2(source_file, target_file)

方法二:用openpyxl复制(适合需要修改内容的场景)

如果你需要加载原文件后做一些修改再保存为副本,其实不用逐单元格手动复制样式!直接加载原工作簿,然后另存为新文件名就可以保留大部分格式:

from openpyxl import load_workbook

# 加载原Excel文件
wb = load_workbook('file_1.xlsx')

# 直接另存为新文件,完成复制
wb.save('file_1_copy.xlsx')

不过要注意:openpyxl对一些复杂格式(比如VBA宏、某些特定图表)支持有限,如果你的Excel文件包含这些内容,还是用方法一更稳妥。

另外,你之前写的手动复制代码只处理了字体样式,却没覆盖单元格填充色、边框、对齐方式、合并单元格等细节,要是想手动处理所有样式得写大量冗余代码,完全没必要——用上面的方法就能轻松搞定啦!

备注:内容来源于stack exchange,提问作者Bast38

火山引擎 最新活动