2011-06-14 73 views
0

과제 코드를 쓰고 있는데 Excel에서 간단한 칼럼 차트를 만들어야합니다. 오늘 오후에 나는 win32com (그런데 놀라운 도구)을 발견,하지만 난 그것에 대해 문서의 부족, 또는 그것이 내가이 차트 장난 해요Python - win32com의 엑스트라 엑셀 차트 시리즈

를 ^^ 찾을 수있는 행운의 나의 부족 중 하나에서 고통 봤는데 , 나는 약간의 예외를 제외하고는 내가 원하는 것을 할 수 있었다고 생각한다. 필자가 작성한 함수는 항상 2 열의 열을 생성한다.

이 내가있어 무엇 :

xlBook = xlApp.Workbooks.Add() 

xlSheet = xlBook.Sheets(1) 
xlSheet.Name = "Algoritmos de Busqueda" 
xlSheet.Cells(1,1).Value="Secuencial" 
xlSheet.Cells(2,1).Value="Binaria" 
xlSheet.Cells(1,2).Value="32" 
xlSheet.Cells(2,2).Value="32" 

chart = xlApp.Charts.Add() 
chart.Name= "Grafico "+xlSheet.Name 
series = chart.SeriesCollection().NewSeries() 
valoresx=xlSheet.Range("A1:A2") 
valoresy=xlSheet.Range("B1:B2") 
series.XValues= valoresx 
series.Values= valoresy 
series.Name= "Algoritmos" 
xAxis= chart.Axes()[0] 
yAxis= chart.Axes()[1] 
xAxis.HasMajorGridlines = True 
yAxis.HasMajorGridlines = True 

나는 차트 안에 새로운 시리즈를 만들고, 내가 필요한 모든 정보가 포함되어 있습니다. 그러나 스크립트를 실행하면 동일한 정보 (쌍으로)가 포함 된 4 개의 열이있는 Excel 차트가 작성됩니다. 내가 할 수있는 모든 일을했지만 X 축에 두 번째 값 시리즈를 만드는 것을 찾을 수 없습니다 ...

대단히 감사합니다! ^^ 감사합니다! 우리는 파이썬으로 복제이기 때문에 우리는 새로운 시리즈를 생성 할 필요가있을 나타나지 않는 것을 볼 수있는 동일한 작업을 수행 Excel에서 매크로 기록의 행동을 관찰함으로써

답변

1

같은

series = chart.SeriesCollection().NewSeries() 

은 단순히 다음 코드는 나에게 내 컴퓨터에서 원하는 동작을 제공하는 것 기존 시리즈

series = chart.SeriesCollection(1) 

를 참조 할 수 있었다.

import win32com.client 
xlApp = win32com.client.Dispatch('Excel.Application') 

xlBook = xlApp.Workbooks.Add() 

xlSheet = xlBook.Sheets(1) 
xlSheet.Name = "Algoritmos de Busqueda" 
xlSheet.Cells(1,1).Value="Secuencial" 
xlSheet.Cells(2,1).Value="Binaria" 
xlSheet.Cells(1,2).Value="32" 
xlSheet.Cells(2,2).Value="32" 

chart = xlApp.Charts.Add() 
chart.Name= "Grafico "+xlSheet.Name 
series = chart.SeriesCollection(1) 
series.XValues= xlSheet.Range("A1:A2") 
series.Values= xlSheet.Range("B1:B2") 
series.Name= "Algoritmos" 
chart.Axes()[0].HasMajorGridlines = True 

이것은 최소한으로 단순화되었습니다. 이것을 Excel 2003에서 Python 2.7로 테스트했습니다.

+0

위대한 !! 예, 완벽하게 작동합니다 ^^ 이제 Excel에서 새 차트를 만드는 대신 새 차트를 만드는 시리즈를 사용할 수 있습니다. 정말 고맙습니다! – dhcarmona