使用xlwings和python复制工作表

问题描述 投票:14回答:1

我一直在Python中使用xlwings,但还是无法弄清楚如何复制工作表。我想将特定工作表视为模板,并在每次修改之前复制该工作表。

我正在使用xlwings的0.11.4版本。如果没有内置这样的功能,我可以在xlwings之外使用pywin32函数来实现这一点。

python excel xlwings
1个回答
1
投票

在几个地方闲逛并阅读pywin32文档后,我找到了一个复制工作表的解决方案:

import xlwings as xw
wb = xw.Book('filename.xlsx')
sheet = wb.sheets['Sheet1']

#copy within the same sheet
sheet.api.Copy(Before=sheet.api)

#copy to a new workbook
sheet.api.Copy()

#copy a third time at the beginning of the sheets
sheet2 = wb.sheets['sheet1 (2)']
sheet.api.Copy(Before=sheet2.api)

#copy to an existing workbook by putting it in front of a worksheet object
sheet.api.Copy(before=existingSheet.api)

这确实超出了xlwings提供的本机功能。因为xlwings是pywin32的包装器,所以.api()调用允许访问那些在xlwings中没有记录的pywin32函数。

另请注意,'After'命令在工作表中不起作用;它将打开一个新的工作簿与复制的工作表。这不应该造成太大的问题,因为我认为如果需要可以重新排序索引。

© www.soinside.com 2019 - 2024. All rights reserved.