2016-12-29 2 views
0

Я пытаюсь изменить размер диаграммы в электронной таблице Excel с помощью win32com и Python. В приведенном ниже коде содержится файл Excel, который уже заполнен данными, и добавляет диаграмму, которую я хотел бы изменить. Любые идеи о коде для добавления \ modify для изменения размера диаграммы? Благодаря!Изменение размера диаграммы в Excel из Python 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} 
. 
. 
. 

ответ

0

Yous должны попробовать 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 (Тип, Left, Top, Width, Height).

0

Согласно interop docs, вы должны звонить AddChart2 вместо AddChart. Первая принимает аргументы для левой, верхней, ширины, высоты и возвращает Shape. Если вам нужно изменить размер диаграммы позже, вы должны установить Left и т. Д. На фигуре. Если вам нужно получить конкретный график, вы используете свойство ChartObjects(index)Worksheet, которое доставит вам ChartObject. Из документов не ясно, что такое (если есть) связь между Shape и ChartObject.