2

我想在本教程中使用pyvot创建一个 excel 工作簿。Pyvot 安装正确,因为我可以毫无错误地导入它。但是当我这样做时:

import xl
xl.Workbook()

我收到此错误:

Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'module' object has no attribute 'workbook'
>>> xl.Workbook()
Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Python27\lib\site-packages\pyvot-0.1.2-py2.7.egg\xl\sheet.py", line 91, in     __init__
    excel = win32.gencache.EnsureDispatch('Excel.Application')
  File "C:\Python27\lib\site-packages\win32com\client\gencache.py", line 529, in EnsureDispatch
    disp = win32com.client.Dispatch(prog_id)
  File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221005, 'Invalid class string', None, None)

我没有安装 Visual Studio 的 Python 工具。

  1. 我是否需要用于 Visual Studio (PTVS) 的 Python 工具才能使用 pyvot?

  2. 较低版本的 excel 然后 excel 2010(例如 excel 2007)可以与 pyvot 一起使用吗?

  3. 我是否需要在 excel 中进行任何设置才能使其与 pyvot 一起使用?

如果上述问题之一的答案不能解释为什么我不能使该代码片段工作,我应该怎么做才能让它正常工作?


我已经安装了 excel 2010。 Pyvot 安装正确,因为我在安装时没有收到任何错误import xl。当我在 pywin32 中键入以下内容时:

import xl
xl.Workbook()

我得到这个名称错误:

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
NameError: name 'xl' is not defined

有谁知道为什么?

4

2 回答 2

2

Pyvot主页:

Pyvot 需要安装了 Python for Windows 扩展 (pywin32) 的 CPython 2.6 或 2.7 以及 Office 2010。如果干净的 Python 会话可以导入 win32com 模块,则可以安装 Pyvot。

因此,根据描述,不需要 PTVS,需要 Excel 2010,并且您需要win32com在当前解释器中启动并运行模块。我使用这个配置没有任何问题。

于 2012-04-30T09:07:37.813 回答
1

我也遇到了同样的情况,我今天刚试过。
试试:xl.workbooks()

这与VBA代码一致。

于 2013-03-20T01:03:29.957 回答