我有一张excel表,前两列有一些数据。我用这些数据创建了一个简单的图表。我在向图表添加轴标签时遇到问题。
这是我的脚本
from win32com.client import Dispatch, constants
excel = win32com.client.Dispatch('Excel.Application')
wb = excel.Workbooks.Open( 'output_data.xls', False, True)
excel.Visible = False
ws1 = wb.Worksheets('sheet_1)
ch = ws1.Shapes.AddChart( 73, 200, 50, 800, 500).Select()
excel.ActiveChart.ApplyLayout(1)
excel.ActiveChart.SetSourceData(Source=ws1.Range("$A:$B"))
excel.ActiveChart.ChartTitle.Text = "Integral"
excel.ActiveChart.Legend.Delete()
excel.ActiveChart.axes(constants.xlCategory).AxisTitle.Caption = "Z_coordinate"
但是当我添加轴标签时,它返回属性错误xlCategory。
如何添加轴标签并更改字体大小。
提前致谢。
答案 0 :(得分:2)
您可能使用了错误的枚举轴类型。每个枚举(据我所知)仅适用于某些类型的图表。根据内置的宏录制器(即使对于基于python的脚本非常有用,顺便说一句),散点图使用xlValue,而不是xlCategory。试试one of the other enums until your code works。
我还没有完全弄清楚win32com中的Excel,但我设法在经过一些试验和错误之后出现了轴标题。这是我为XY散点图编写的一些代码的简短片段,其中包含X轴,Y轴和Y2轴的标题:
Foo = chart.SeriesCollection(1)
Bar = chart.SeriesCollection(2)
Bar.AxisGroup = 2
Primary_Axis = chart.Axes(AxisGroup=xlPrimary)
Foo_xAxis = Primary_Axis(1)
Foo_yAxis = Primary_Axis(2)
Foo_xAxis .HasTitle = True
Foo_yAxis .HasTitle = True
Bar_yAxis = chart.Axes(xlValue, AxisGroup=xlSecondary)
Bar_yAxis.HasTitle = True
Foo_xAxis .AxisTitle.Text = "Primary X axis string"
Foo_yAxis .AxisTitle.Text = "Primary Y axis string"
Bar_yAxis.AxisTitle.Text = "Secondary Y axis string(Y2)"