Python中的win32com Spyder控制台导致错误

我直接从这个文档/教程运行下面的代码。

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文件,并更改文件地址,并尝试从该教程中的多个示例,他们都给我类似的错误,我不知道为什么。

我可以得到尽可能wb = excel.Workbooks.Add()之前,我得到了TypeError: an integer is required警告,如果我尝试wb = excel.Workbooks.Add ,它会运行,我不会得到错误,但是我从此不能做任何事情。

有谁知道这是什么? 提前致谢。

[编辑:]

我试图比较一个字的文件,我工作正常。

有谁知道为什么这些作品之一,而不是?

 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不? 我检查了系统path,他们是相同的,甚至试图在Anaconda执行.py程序不起作用。

我似乎是唯一在互联网上有这个问题的人,但我的解决方法是我使用了不同的Spyder Python解释器。

Python interpreter给了我几乎所有的win32com excel命令,但IPython console工作正常。 不知道为什么。

在这里输入图像说明