Excel Win32com программирование с Python. Передача параметров в функцию - PullRequest
2 голосов
/ 15 марта 2011

Я подозреваю, что на этот вопрос есть простой ответ, но я нигде не могу его найти!Я пишу функцию для построения большого количества данных в Excel и управляю построением с помощью Python.Я сгенерировал все графики, и каждый график имеет свой собственный лист, но они вышли из строя.Код VBA для этого:

Sheets("Chart1").Move After:=Sheets(3)

Это займет «Chart1» и переместит его после 3-го листа.Как мне сделать это в Python?Я знаю, что код является чем-то вроде:

xlChart.Move(Before,After)

Как мне сообщить python параметры До и После?Наверное, самое главное, я не понял, как передавать параметры в программировании на win32com.

Заранее спасибо за любую помощь!

1 Ответ

3 голосов
/ 15 марта 2011

Вот очень простой пример:

from win32com import client

excel=client.Dispatch("Excel.Application")
excel.Visible=True
book=excel.Workbooks.Open("c:/desktop/test.xlsx", False, True)
sheet=book.Worksheets(1)
chart=book.Charts.Add()
chart.SetSourceData(sheet.Range("$A:$B"))

chart.Move(Before=book.Worksheets("Sheet2"))
chart.Move(book.Worksheets("Sheet2"))#equivalent to previous line
chart.Move(book.Worksheets("Sheet2"), None)#also equivalent

chart.Move(After=book.Worksheets("Sheet2"))
chart.Move(None,book.Worksheets("Sheet2"))#equivalent to previous line

Я попытался показать различные варианты работы с дополнительными параметрами, которые являются важными проблемами при программировании в Excel COM. Вы можете использовать позиционную передачу параметров и пропустить параметры с конца. Или вы можете передать None, что эквивалентно. Наконец, вы можете использовать именованные параметры.

...