【发布时间】:2018-02-13 04:00:47
【问题描述】:
我是一个完全的编码初学者,我在弄清楚如何使用 tkinter asksavefileasname diaglog 作为 win32 保存打开的 excel 文件的路径时遇到了问题。我继续收到;
pywintypes.com_error: (-2147352567, '发生异常。', (0, 'Microsoft Excel', "Microsoft Excel 无法访问该文件 'C:\//用户/user1/Desktop/610D1100'。有几种可能 原因:\n\n• 文件名或路径不存在。\n• 文件在 正被另一个程序使用。\n• 您尝试保存的工作簿 与当前打开的工作簿同名。", 'xlmain11.chm', 0, -2146827284)
以下是相关代码:
from tkinter import filedialog
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
if selection == 'Other':
wb = excel.Workbooks.Open('C:\\Users\\user1\\Desktop\\template1.xlsx')
saveFile = filedialog.asksaveasfilename(filetypes=(("Excel files", "*.xlsx"),
("All files", "*.*") ))
print (saveFile) #This gives the correct file path
wb.SaveAs(saveFile)
excel.Application.Quit()
如果我手动输入保存文件的路径,它可以正常工作。
我正在尝试从另存为对话框中获取用户输入作为保存文件的路径。
即。 wb.SaveAs(#path and filename from user input in GUI)
我没有保存为已打开的文件名。使用 print(saveFile) 时打印正确的路径唯一未知的是错误消息中路径中添加的 \。我不确定这是否是将 \ 添加到路径中的 tkinter 问题,或者这是否无关紧要。
编辑** 我不认为这是一个 tkinter 问题,因为它适用于打印,它在错误消息中给了我一个不同的文件名,这让我相信这是一个与 win32 相关的问题。
【问题讨论】:
标签: python-3.x tkinter pywin32 win32com save-as