Python com介于python和excel之间



我正在尝试学习一些python,我希望python使用win32模块与excel进行交互。我在维基上找到了一个基本的例子。

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

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")。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

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

您链接到的代码看起来像是直接从此博客中提取的。从它的声音来看,你并没有试图与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

在这一行中:

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

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

最新更新