Объекты диаграммы в xlwings - PullRequest
       21

Объекты диаграммы в xlwings

0 голосов
/ 31 августа 2018

Фрагмент кода взят из официальной документации xlwings здесь и это настройка для моего вопроса.

import xlwings as xw
sht = xw.Book().sheets[0]
sht.range('A1').value = [['Foo1', 'Foo2'], [1, 2]]
chart = sht.charts.add()
chart.set_source_data(sht.range('A1').expand())
chart.chart_type = 'line'
chart.name

Running print(chart.api) выводит кортеж ниже.

(<xlwings._xlwindows.COMRetryObjectWrapper at 0x1fcd60c9a90>, <xlwings._xlwindows.COMRetryObjectWrapper at 0x1fcd60c9f28>)

Если я хочу использовать атрибут api для выполнения некоторых базовых манипуляций с диаграммой, таких как удаление легенды и добавление заголовка, это работает, только если я сделаю это для chart.api[1]. Например, приведенный ниже код работает нормально. Это удаляет легенду диаграммы и добавляет заголовок.

chart.api[1].HasLegend = 0
chart.api[1].SetElement(2)
chart.api[1].ChartTitle.Text = 'A title'

Однако все, что я делаю с chart.api[0], приводит к ошибке (например, print(chart.api[0].HasLegend) дает ошибку). Я не могу понять, что это за объект или как он полезен. Я не могу найти ничего относительно этого в официальной документации.

Наконец, мой вопрос: что это за объект с индексом 0 выше? Пожалуйста, помогите мне понять, что это такое.

1 Ответ

0 голосов
/ 13 сентября 2018

Есть еще один пост, посвященный вашему вопросу об объекте с индексом 0.

установить имя диаграммы в Xlwings

Выражение chart.api возвращает кортеж с двумя обертками COM. я не совсем уверен, почему есть два COM-обертки, но кажется, что вы нужен второй, чтобы получить доступ к графику. Отсюда и использование chart.api [1] здесь.

...