Ошибка xlПример не определен в Python win32com

Я продолжаю получать ошибки, когда xlCategory , xlValue и xlPrimary не распознаются в моем сценарии python.

Я пытаюсь обозначить оси моего графа и успешно сделал это вчера с этим кодом:

 chart = excel.Charts.Add() chart.Name = "Chart Title" chart.ChartType = -4169 #xlXYScatter chart.SetSourceData(firstSheet.Range("$A:$B")) series = chart.SeriesCollection(1) series.Name = "Series Name" chart.Axes(win32com.client.constants.xlCategory).HasTitle = True chart.Axes(win32com.client.constants.xlCategory).AxisTitle.Caption = "x Axis" chart.Axes(win32com.client.constants.xlValue).HasTitle = True chart.Axes(win32com.client.constants.xlValue).AxisTitle.Caption = "y Axis" 

Это вызвало следующую ошибку:

 Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> startGraphBuild() File "C:\Python33\InCAS_Study_Analysis\VMDvsMODVMDG.py", line 33, in startGraphBuild chart.Axes(win32com.client.constants.xlCategory).HasTitle = True File "C:\Python33\lib\site-packages\win32com\client\__init__.py", line 170, in __getattr__ raise AttributeError(a) AttributeError: xlCategory 

Поэтому я попробовал это из этого вопроса stackoverflow, изменяя метки осей в диаграммах excel 2007, используя python win32com :

 pAxis = chart.Axes(AxisGroup = xlPrimary) xAxis = pAxis(1) yAxis = pAxis(2) xAxis.HasTitle = True yAxis.HasTitle = True xAxis.AxisTitle.Caption = "VMD" yAxis.AxisTitle.Caption = "MOD VMD" 

Но это привело к следующей ошибке:

 Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> startGraphBuild() File "C:\Python33\InCAS_Study_Analysis\VMDvsMODVMDG.py", line 37, in startGraphBuild pAxis = chart.Axes(AxisGroup = xlPrimary) NameError: global name 'xlPrimary' is not defined 

Кто-нибудь еще испытал это? Поскольку он работал вчера, я попытался перезагрузить все, удалив и переустановив pyWin, но они не сработали.

Я использую Python 3.3 и Excel 2010.

  • Настройка свойства с помощью win32com
  • Как использовать python win32com для сохранения в качестве файла excel
  • Python - запустить макрос Excel
  • Python win32com - Автоматизация Word - Как заменить текст в текстовом поле?
  • win32com + Excel + Django + Apache = проблема
  • пишущий массив, чтобы преуспеть в python с win32com
  • Асинхронные данные через новый API данных Bloomberg (COM v3) с Python?
  • «Не реализовано» Исключение при использовании pywin32 для управления Adobe Acrobat
  • One Solution collect form web for “Ошибка xlПример не определен в Python win32com”

    Определены константы. Однако они будут загружены, только если вы создали библиотеку COM-типа для объектов COM, представляющих интерес. Существует несколько способов сделать это (мой собственный ответ на Доступ к константам перерассеяния в Excel COM с использованием Python и win32com содержит некоторые ссылки, которые вы найдете полезными). Но в основном попробуйте это:

     Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win Type "help", "copyright", "credits" or "license" for more information. Portable Python >>> import win32com Portable Python >>> win32com.__gen_path__ # path to COM typelib generated by win32com 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\gen_py\\2.7' 

    Теперь попробуйте с Dispatch :

     Portable Python >>> from win32com import client Portable Python >>> xl=client.Dispatch('Excel.Application') Portable Python >>> client.constants.xlPrimary Traceback (most recent call last): File "<stdin>", line 1, in <module> File "G:\Portable Python 2.7.5.1\App\lib\site-packages\win32com\client\__init_ __getattr__ raise AttributeError(a) AttributeError: xlPrimary 

    Теперь используйте EnsureDispatch из gencache :

     Portable Python >>> xl=client.gencache.EnsureDispatch('Excel.Application') Portable Python >>> client.constants.xlPrimary 1 Portable Python >>> 

    Вам нужно только использовать EnsureDispatch один раз, так как после создания библиотеки Типа даже Dispatch загрузит константы.

    Если вам нужно очистить кеш по какой-то причине, было нелегко найти, но вы можете удалить папку gen_py , ее путь можно найти из win32com.__gen_path__ .

    Python - лучший язык программирования в мире.