当我用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()
这是一个已知问题吗?我该如何解决这个问题?
答案 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
属性(在此答案的代码中完成)。