2

我正在尝试学习一些 python,我希望 python 使用 win32 模块与 excel 交互。我在 wiki here上在线找到了一个基本示例。

但是它不会起作用。这是我得到的错误。

Traceback (most recent call last):
  File "C:/Users/Greg/Desktop/python programming/excel2.py", line 8, in <module>
    sheet.Range("A2").Value = str(Application.SIFilter(None, c.siObjectFilter))
NameError: name 'Application' is not defined

我的问题是那条线到底是做什么的,为什么我会出错?

sheet.Range("A2").Value = str(Application.SIFilter(None, c.siObjectFilter))

import win32com.client
from win32com.client import constants as c

excel = win32com.client.Dispatch("Excel.Application")
book = excel.Workbooks.Add()
sheet = book.Worksheets(1)
sheet.Range("A1").Value = "Hello World!"
sheet.Range("A2").Value = str(Application.SIFilter(None, c.siObjectFilter))
book.SaveAs("c:\simple_example.xls")

sheet = None
book = None
excel.Quit()
excel = None

谢谢对不起,如果我是超级菜鸟......

4

2 回答 2

3

您链接到的代码看起来像是直接从这个博客中提取的。从它的声音来看,您并没有尝试与Softimage集成。你会想把那条线去掉。

此外,如果您使用 Excel 2007 或更高版本,您希望写入xlsx文件,因为这Excel.Application就是将为您创建的内容。

这是使用这些更改修改的相同示例代码。

import win32com.client

excel = win32com.client.Dispatch("Excel.Application")
book = excel.Workbooks.Add()
sheet = book.Worksheets(1)
sheet.Range("A1").Value = "Hello World!"
book.SaveAs("c:\simple_example.xlsx") # or .xls depending on version

sheet = None
book = None
excel.Quit()
excel = None
于 2012-04-15T18:43:31.693 回答
0

在这一行:

sheet.Range("A2").Value = str(Application.SIFilter(None, c.siObjectFilter))

你正试图变成Application.SIFilter(None, c.siObjectFilter)一个字符串。您没有定义名为 的对象Application。我没有运行代码,但我认为如果您编写excel.SIFilter(None, c.siObjectFilter). 如果你只是想学习,写点别的,你会得到一个excel文件。

于 2012-04-15T18:44:31.847 回答