该代码段来自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处的对象是什么?请帮我看看它是什么。
答案 0 :(得分:0)
还有另一篇文章解决了您关于索引0处的对象的问题。
表达式chart.api返回带有两个COM包装器的元组。我是 不太确定为什么有两个COM包装器,但看来您 需要第二个访问图表。因此,使用chart.api [1] 在这里。