从Python更改Excel中的图表大小win32com

我试图使用win32com和Python更改Excel电子表格中图表的大小。下面的代码需要一个已经填充了数据的Excel文件,并添加了一个我想调整大小的图表。任何想法添加\修改代码来改变图表的大小?谢谢!从Python更改Excel中的图表大小win32com

import win32com.client as win32 

xl = win32.DispatchEx('Excel.Application')

wb = xl.Workbooks.Open('C:/newfolder/example.xlsx')

ws = wb.Worksheets('Sheet1').Select()

ws = xl.ActiveSheet

ch = ws.Shapes.AddChart().Select()

xl.ActiveChart.ChartType = c.xlXYScatterLines

xl.ActiveChart.SetSourceData(Source = ws.Range(a+':'+b),PlotBy =2)

xl.ActiveChart.HasTitle = True

xl.ActiveChart.ChartTitle.Text = 'Chart of Capabilities'

xl.ActiveChart.ChartTitle.Font.Size = 14

.

.

.

{changing various chart attriutes}

.

.

.

回答:

你要跟应尽量openpyxl库

import openpyxl 

chartwb = openpyxl.Workbook()

sheet = chartwb.get_active_sheet()

referenceobj = openpyxl.charts.Reference(sheet, (1, 1), (10, 1))

serObj = openpyxl.charts.Series(referenceObj, title='Chart Series')

chartObject = openpyxl.charts.BarChart()

chartObject.append(serObj)

chartObject.drawing.top = 50

chartObject.drawing.left = 100

chartObject.drawing.width = 300

chartObject.drawing.height = 200

sheet.add_chart(chartObject)

chartwb.save('example.xlsx')

您也可以在创建expression.AddChart(类型,左,上,宽度,高度)时指定的大小。

回答:

根据interop docs,您应该致电AddChart2而不是AddChart。前者采用左,上,宽,高的参数并返回Shape。如果您需要稍后调整图表大小,则应该可以在形状上设置Left等。如果您需要检索特定的图表,请使用WorksheetChartObjects(index)属性,该属性将为您提供ChartObject。从文档中不清楚ShapeChartObject之间是什么(如果有)关系。

以上是 从Python更改Excel中的图表大小win32com 的全部内容, 来源链接: utcz.com/qa/259935.html

回到顶部