首页 > 解决方案 > 如何复制工作簿末尾而不是开头的工作表?

问题描述

这是参考问题:“如何将 Excel 工作表复制到 Python 中的另一个工作簿”。

from win32com.client import Dispatch
path1 = 'C:\\Users\\Xukrao\\Desktop\\workbook1.xlsx'
path2 = 'C:\\Users\\Xukrao\\Desktop\\workbook2.xlsx'

xl = Dispatch("Excel.Application")
xl.Visible = True  # You can remove this line if you don't want the Excel 
application to be visible

wb1 = xl.Workbooks.Open(Filename=path1)
wb2 = xl.Workbooks.Open(Filename=path2)

ws1 = wb1.Worksheets(1)
ws1.Copy(Before=wb2.Worksheets(1))

wb2.Close(SaveChanges=True)
xl.Quit()

标签: python

解决方案


不知道它是否仍然需要,但在这一行:

ws1.Copy(Before=wb2.Worksheets(1))

您还可以使用After来设置所需的工作表位置。有关更多详细信息,请参见此处

要将其放在所有现有工作表的末尾,您可能需要先计算现有工作表并使用结果编号来指定文件的最后一个工作表,例如:

wb2_lastsheet = len(wb2.Worksheets)
ws1.Copy(After=wb2.Worksheets(wb2_lastsheet))

希望有帮助!


推荐阅读