热门标签:
Q:

Python和excel之间的Python com

我试图学习一些python,我想让python使用win32模块与excel进行交互。 我在wikihere上在线找到了一个基本示例。

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

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

我的问题是该行究竟做了什么,为什么我得到一个错误?

片材。范围("A2")。值=str(应用程序。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

谢谢,对不起,如果我是超级noob。...

原网址
A:

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

此外,如果您使用Excel2007或更高版本,则需要写入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

所有回答

共 1 条

author avatar

在这一行 :

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

您正在尝试将Application.SIFilter(None, c.siObjectFilter)转换为字符串。 您没有定义名为Application的对象。 我没有运行代码,但我认为如果你写excel.SIFilter(None, c.siObjectFilter),它可能会起作用。 如果你只是想学习,写别的东西,你会得到一个excel文件。

相似问题