[英]win32com in Python Spyder console results in an error
我只是直接从这个文档/教程运行以下代码。
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
wb.SaveAs('add_a_workbook.xlsx')
excel.Application.Quit()
得到了这个:
execfile(filename, namespace)
File "C:/Users/Username/Desktop/script.py", line 106, in <module>
wb = excel.Workbooks.Add()
File "C:\Users\Username\AppData\Local\Temp\gen_py\2.7\00020813-0000-0000-C000-000000000046x0x1x7\Workbooks.py", line 34, in Add
ret = self._oleobj_.InvokeTypes(181, LCID, 1, (13, 0), ((12, 17),),Template
TypeError: an integer is required
有谁知道为什么? 我已经尝试使用xlsx与xls文件,并更改文件地址,并尝试从该教程中的多个示例,他们都给我类似的错误,我不知道为什么。
在得到TypeError: an integer is required
之前我可以得到wb = excel.Workbooks.Add()
TypeError: an integer is required
警告,如果我尝试wb = excel.Workbooks.Add
,它会运行,我不会得到错误,但我从那以后做不了什么。
有谁知道这是什么? 提前致谢。
[编辑:]
我尝试了一个word文件进行比较,我工作正常。
有谁知道为什么其中一个工作而一个不工作?
word = win32.Dispatch('Word.Application')
word.Documents.Open('C:\Users\username\Desktop\test.docx')
excel = win32.Dispatch('Excel.Application')
excel.Workbooks.Open('C:\Users\username\Desktop\output.xlsx')
[编辑2:]
好的,我发现问题出在Spyder IDE上。 如果我在Anaconda中编写相同的代码,它将正常工作。 有谁知道为什么Anaconda有效,但Sypder没有? 我检查了系统路径并且它们是相同的,甚至尝试在Anaconda中执行.py程序也行不通。
我似乎是互联网上唯一有这个问题的人,但我的解决方法是我使用了不同的spyder python解释器。
Python interpreter
给了我各种各样的错误,几乎每个win32com excel命令,但IPython console
工作正常。 不知道为什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.