我使用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)
-相同
1条答案
按热度按时间fcg9iug31#
在你对文件进行修改之后。使用
time.sleep(5) wb.Save() excel.Quit()
我花了一个小时才明白,wb.Close()
正在关闭文件,在它成功保存之前-所以不要使用wb.Close()
。