P. *_*kes 15 python excel xlwings
我一直在python中使用xlwings,并且正在努力找到复制工作表(例如模板)的正确代码.在几个地方四处寻找并阅读pywin32文档后,我找到了一个复制工作表的解决方案.我想在这里发布它,以帮助其他人搜索相同的问题,以节省他们一些时间.这适用于xlwings版本0.11.4.
__PRE__
这一切都有效,因为xlwings是pywin32的包装器,而.api调用允许访问那些在xlwings中未记录的pywin32函数.另请注意,'After'命令在工作表中不起作用,它将打开一个复制了工作表的新工作簿.这不应该造成太大的问题,因为我认为如果需要可以重新排序索引.谢谢.
在找了几个地方并阅读了 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)
Run Code Online (Sandbox Code Playgroud)
这确实超出了 xlwings 提供的本机功能。由于 xlwings 是 pywin32 的包装器,因此该.api()调用允许访问 xlwings 中未记录的那些 pywin32 函数。
另请注意,“After”命令在工作表中不起作用;它将打开一个新的工作簿,其中复制了工作表。这不应该构成太大的问题,因为我相信如果需要,索引可以重新排序。