我正在使用python 2.7 win32com模块从Python加载MS Excel工作表:

    book = xlApp.Workbooks.Open("myFile.xls")
    sheet = book.Sheets(1)

Range,Worksheet等的许多方法和属性都使用XlDirection,XlFillWith等枚举。这些定义了常量,例如xlDown,xlUp,xlFillWithContents等。这些常量可以从win32com获得,以便我可以这样做,例如:
    column = outputsSheet.Range("I5:I150")
    lastRow = column.End(xlInterop.xlDown)
    print "Last row:", lastRow.Row

由于未定义xlInterop,因此无法使用,是否可以使用win32com访问它?通过反复试验发现诸如xlDown之类的常量的值不是很实际。

最佳答案

我是win32com的新手,所以我不知道这是否有帮助...尝试使用以下方法启动Excel:

xlApp = win32com.client.gencache.EnsureDispatch("Excel.Application")

这应该运行makepy,并且您可以在...\Lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x7中找到一些生成的Python文件(最后一个文件夹可能是您的另一个名字,我不知道)。检查初始化 .py文件,那里定义了一堆常量。

编辑:您可以使用以下命令访问这些常量:
from win32com.client import constants as c

Edit2:文件夹的路径:
win32com.__gen_path__

关于excel - 使用Python和Win32com访问Excel COM中的枚举常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21465810/

10-10 14:54