当我用 xlwings 绘制图表时,我无法更改图表名称。图表名称和图例名称仍然是“Series 1”,但左上角显示的是我想要的“Feb sales”
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()
这是一个已知问题吗?我该如何解决这个问题?
最佳答案
这应该有效:
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
属性(如本答案代码中所做的那样)。
关于python - 在 Xlwings 中设置图表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910566/