无法保存Excel文件- Win32com.client

w41d8nur  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(77)

我使用Python打开Excel文件(xlsxwriter用于创建Excel文件),然后添加数据透视表,图表和切片器,然后我需要保存并关闭它。我可以得到一切,除了保存部分。我想Excel保存文件具有相同的名称和相同的格式,甚至没有要求我确认或类似的东西.

import win32com.client as win32
from pathlib import Path

win32c = win32.constants

f_path = Path.cwd()
f_name = "filename.xlsx"

filename = f_path / f_name

# Create Excel Object

excel = win32.gencache.EnsureDispatch('Excel.Application')

# Excel Can be Visible or Not + Display Alerts or Not

excel.Visible = True
excel.DisplayAlerts = False

# Initiate the workbook

wb = excel.Workbooks.Open(filename)

#HERE IS THE CODE TO ADD PIVOT TABLE, CHART AND SLICERS - WORKS AS EXPECTED WITHOUT ERRORS   

# Save Workbook

wb.Close(SaveChanges = 1)

# Close Excel

excel.Application.Quit()

字符串
如果我使用wb.Close(SaveChanges = 1),它不只是保存文件,它打开另存为窗口,并建议我保存格式与不同的奇怪的名称,它甚至不让我覆盖(使用相同的名称)现有的文件。我必须选择不同的名称,然后删除以前的文件,然后重命名新文件,以匹配原始文件名,然后我仍然需要手动关闭Excel。
x1c 0d1x的数据
如果我使用wb.Save(),它会做同样的事情。
如果我使用wb.SaveAs(str(filename), win32c.xlWorkbookDefault),它也会这样做
wb.SaveAs(Filename = str(filename))-相同
wb.SaveAs(str(filename), FileFormat=51, ConflictResolution=2)-相同

fcg9iug3

fcg9iug31#

在你对文件进行修改之后。使用time.sleep(5) wb.Save() excel.Quit()我花了一个小时才明白,wb.Close()正在关闭文件,在它成功保存之前-所以不要使用wb.Close()

相关问题