在Xlwings中设置图表名称

时间:2017-07-04 16:23:44

标签: python excel windows charts xlwings

当我用xlwings绘制图表时,我无法更改图表名称。图表名称和图例名称仍然是'系列1',但左上角显示' 2月销售'这是我想要的

import xlwings as xw

sht = xw.Book().sheets[0]
sht.range('A1').value = list(zip([1, 2, 3, 4]))
chart = sht.charts.add()
chart.set_source_data(sht.range('A1').expand())
chart.chart_type = 'line_markers'
chart.name='Feb sales'
#chart.api.ChartTitle.Text = 'Feb sales'
#chart.delete()

created chart

这是一个已知问题吗?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

这应该有效:

import xlwings as xw

sht = xw.Book().sheets[0]
sht.range('A1').value = list(zip([1, 2, 3, 4]))
chart = sht.charts.add()
chart.set_source_data(sht.range('A1').expand())
chart.chart_type = 'line_markers'

chart.api[1].SetElement(2)  # Place chart title at the top
chart.api[1].ChartTitle.Text = 'Feb sales'  # Change text of the chart title

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

使用属性xlwings.Chart.name,您可以设置Excel图表的Name属性(就像您在问题代码中所做的那样),但这不是用于显示的属性。要在图表中显示文本,您需要设置Excel图表的ChartTitle属性(在此答案的代码中完成)。