【发布时间】:2018-10-08 08:57:50
【问题描述】:
我有大量文件需要将某个工作表从它们复制到另一个工作簿,它们需要放在具有特定名称的工作表之后,同时保留正在移动的工作表中的所有格式。
我在另一个线程中看到 pywin32 将是要走的路,但是我很难在命名表“之后”复制此表。
xl = Dispatch("Excel.Application")
xl.Visible = True
xl.AskToUpdateLinks = False
xl.EnableEvents = False
xl.DisplayAlerts = False
wb1 = xl.Workbooks.Open(Filename=p1)
wb2 = xl.Workbooks.Open(Filename=p2)
ws1 = wb1.Worksheets("ThisSheet")
##PROBLEM LINE HERE
ws1.Copy(After=wb2.Worksheets("AfterThisSheet"))
##END OF PROBLEM LINE
wb2.Sheets("ThisSheet").Name = "NewNameInNewWorkBook"
wb2.Close(SaveChanges=True)
wb1.Close(SaveChanges=True)
xl.Quit()
当我使用“之前”而不是“之后”时,此操作成功完成,但不幸的是我要复制的工作表在错误的位置结束。
当我使用“After”时,它会抛出一个错误。
我可以在 python 中使用其他包,如 pandas、xlrd 等,但是,它们似乎在保持格式不变方面存在问题。
提前致谢
【问题讨论】:
-
当您标记 excel 时,这里是一些我用于类似内容的 vba 代码:stackoverflow.com/a/30605765