我有一个MS Excel工作簿,我想打开它,然后在各个选项卡之间循环,并为原始工作簿中的每个选项卡创建和保存一个工作簿。所以我打开文件A,有标签1,2,3,创建并保存一个文件B,C,D,每个都有一个唯一的标签。我有VBA的代码,它可以创建工作表的一个副本,但是当我尝试用Python进行此操作时,我最终得到了每个工作簿中的所有选项卡。以下是工作的VBA:
Sub ConvertTabsToFiles()
Dim currPath As String
currPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=currPath & "\" & xWs.Name & ".xlsx"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
以下是不起作用的Python代码:
xlApp = win32.com.client.Dispatch("Excel.Application")
xlwb = xlApp.Workbooks.Open("C:\Inputfile.xlsx")
for sheet in xlwb.Worksheets:
sheet.Copy
xlApp.ActiveWorkbook.SaveAs("C:\Users\user\AppData\Local\Temp\\"+ sheet.Name+".xlsx")
非常感谢你的帮助,我很难受。提前谢谢。
可以通过“另存为”方法保存各个工作表:
注意,我将“r”前缀放在字符串上,否则反斜杠将被Python解释为特殊字符,除非加倍会使字符串变得模糊。
谢谢斯科利,我能走上正轨。以下是对我有用的,希望对你有所帮助:
谢谢大家。尤其是斯科利让我走上正轨。也谢谢TankorSmash的回答。
相关问题 更多 >
编程相关推荐