我正在使用Python 3.3.5并尝试将Excel 2003文件(.xls)另存为Excel 2007文件(.xlsx)。以下脚本的问题是,如果我在Spyder中运行它,脚本运行得很好,但是如果我尝试运行它只需双击脚本,它就不起作用。
Spyder可以毫无问题地导入win32com.client并成功运行脚本,而IDLE无法运行脚本并发出错误:
“import win32api,sys,os”
“ImportError:DLL加载失败:找不到指定的模块。”
Excel_File_Conversion脚本通过win32com.client
fname = filedialog.askopenfilename(filetypes=(("Excel files", "*.xls;*.xlsx"),
("All files", "*.*") ))
fname = fname.replace("/",os.path.sep)
if fname[-1] != 'x':
try:
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)
messagebox.showinfo(title = "Conversion",
message="Excel 2003(.xls) format was converted to Excel 2007(.xlsx) format",
detail = "Press OK to continue")
wb.SaveAs(fname+"x", FileFormat = 51)
wb.Close()
excel.Application.Quit()
fname = fname+"x"
except TypeError:
messagebox.showerror(title = "Error", message="File could not be opened")
PS:双击运行脚本没有问题。
答案 0 :(得分:0)
不幸的是,pywin32
并不总是正确安装。您可以尝试一些事项(按此顺序):
在命令提示符中(您可能需要右键单击并以“以管理员身份运行”)运行python C:\Python33\Scripts\pywin32_postinstall.py -install
将找到pythoncom33.dll
的路径添加到Windows PATH。它可能位于Python根目录下或更进一步。
将pythoncom33.dll
复制到C:\Python33\Lib\site-packages\win32
否则,您可能需要尝试其中包含pywin32
或Anaconda
或Canopy
WinPython
附带的分发之一LI>
始终相应地调整路径。