2016-12-29 191 views
0

我試圖使用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} 
. 
. 
. 

回答

0

你要跟應儘量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(類型,左,上,寬度,高度)時指定的大小。

0

根據interop docs,您應該致電AddChart2而不是AddChart。前者採用左,上,寬,高的參數並返回Shape。如果您需要稍後調整圖表大小,則應該可以在形狀上設置Left等。如果您需要檢索特定的圖表,請使用WorksheetChartObjects(index)屬性,該屬性將爲您提供ChartObject。從文檔中不清楚ShapeChartObject之間是什麼(如果有)關係。