找回密码
 会员注册
查看: 24|回复: 0

python中实现两个Excel之间Sheet的复制(保留原格式)

[复制链接]

10

主题

0

回帖

31

积分

新手上路

积分
31
发表于 2024-9-6 10:10:48 | 显示全部楼层 |阅读模式
方法一(通用)在前面如果你的python是x32的,并且安装的是WPS,可以考虑使用三方库win32com来实现。示例代码importwin32com.clientasclientsource_file=r"C:\Users\xxx\Desktop\test!.xlsx"target_file=r"C:\Users\xxx\Desktop\test!-副本.xlsx"#xl=client.Dispatch("Excel.Application")xl=client.gencache.EnsureDispatch("Ket.Application")#wpsusexl.Visible=0#不显示wb1=xl.Workbooks.Open(Filename=source_file)wb2=xl.Workbooks.Open(Filename=target_file)ws1=wb1.Worksheets(1)ws1.Copy(After=wb2.Worksheets('test1'))wb1.Close(SaveChanges=False)wb2.Close(SaveChanges=True)xl.Quit()结果示例方法二(不通用)在前面如果你的python>=3.7x64,安装的是MicrosoftExcel,那么可以考虑使用三方库Spire.Xlsforpython。需要注意的是,如果你没有它的license,那么它会自动生成一个EvaluationWarning的Sheet,需要后期删除官方文档中的说明生成的Excel文件示例代码fromspire.xlsimportWorkbook,ExcelVersionsource_file=r"C:\Users\xxx\Desktop\test!.xlsx"target_file=r"C:\Users\xxx\Desktop\test!-副本.xlsx"#读取源数据表sourceWorkbook=Workbook()sourceWorkbook.LoadFromFile(source_file)destWorkbook=Workbook()destWorkbook.LoadFromFile(target_file)#复制之后的sheet名sourceSheet=sourceWorkbook.Worksheets[0]sheetName=sourceSheet.Name+"_Copy"destSheet=destWorkbook.Worksheets.Add(sheetName)#复制destSheet.CopyFrom(sourceSheet)destWorkbook.CopyTheme(sourceWorkbook)#保存,根据Excel版本不同destWorkbook.SaveToFile(target_file,ExcelVersion.Version2013)#释放sourceWorkbook.Dispose()destWorkbook.Dispose()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 20:29 , Processed in 0.430212 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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