xlwings中的图表对象

时间:2018-08-30 22:19:22

标签: python pywin32 xlwings

该代码段来自xlwings here的官方文档,这是我的问题的设置。

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

运行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 :(得分:0)

还有另一篇文章解决了您关于索引0处的对象的问题。

set chart name in Xlwings

  

表达式chart.api返回带有两个COM包装器的元组。我是   不太确定为什么有两个COM包装器,但看来您   需要第二个访问图表。因此,使用chart.api [1]   在这里。