繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM