2011-06-14 9 views
0

私は代入のためのコードを書いています。Excelで単純な縦棒グラフを作成する必要があります。今日の午後、私はwin32com(驚くべきツール)を見つけましたが、それについてのドキュメントがないか、それが見つからなかったかのどちらかで苦しんでいました^^Python - 余分なExcelチャートシリーズと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軸にこの2番目の値のシリーズを作ることができません...

大変ありがとうございました!

答えて

1

同じアクションを実行し、Excelでマクロを記録する行動を観察することによって、我々はPythonで複製されるよう、私たちは、このような

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 

これは最小限に簡略化されています。 これをPython 2.7でExcel 2003でテストしました。

+0

素晴らしい!はい、これは完璧に動作します^^今度は、新しいチャートを作成するのではなく、新しいチャートとともにExcelが作成するシリーズを使用できます。どうもありがとうございます! – dhcarmona

関連する問題