изменение размера диаграммы в Excel от Python win32com

Я пытаюсь изменить размер диаграммы в электронной таблице Excel с помощью win32com и Python. Код ниже берет файл Excel, который уже заполнен данными, и добавляет диаграмму, которую я хотел бы изменить. Есть идеи по добавлению кодаmodify для изменения размера диаграммы? Спасибо!

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}
.
.
.

2 ответа

  1. Попробуйте библиотеку 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')
    

    Также можно указать размер во время создания выражения.AddChart(Type, Left, Top, Width, Height).

  2. В соответствии с документами взаимодействия, вы должны звонить AddChart2вместо AddChart. Первый принимает аргументы left, top, width, height и возвращает фигуру . Если вам нужно изменить размер диаграммы позже, вы должны иметь возможность установить Leftetc на фигуре. Если вам нужно получить определенную диаграмму, вы используете ChartObjects(index)свойствоWorksheet, которое даст вам ChartObject . Из документов не ясно, что такое (если есть) связь между Shapeand ChartObject.