既存のExcelファイルに書き込んでグラフを作成
Excelでグラフを作成することがあるが、コピペで数値を処理するのが面倒になってきたので、pythonで処理する。
- 参考ページ
- http://www.hlj.com/~tanoue/Python/Wdw/wpy1.html(win32comの使い方)
- http://d.hatena.ne.jp/tenkoma/20060907(既存のExcelファイルを開く方法)
- 行いたいこと
始めに下図のtest_sheet.xlsを作成しておく。ファイルはC:\Doc\Python-development\test_sheet.xlsに置かれているものとする。
実行するコードは以下の通り。
from math import * import win32com.client RowNum = 50 # 数値データは50行分ある # open excel file xlApp = win32com.client.Dispatch("Excel.Application") # ファイルを開く。rを付けてエスケープシーケンスを無効化 xlApp.Workbooks.Open(r"C:\Doc\Python-development\test_sheet.xls") xlApp.Visible = 1 # Excelが画面で起動する xlSheet = xlApp.Workbooks(1).Sheets(1) # define function xval = [x for x in xrange(RowNum)] # x, yに入れる値を定義する yval = [sin(2*pi/RowNum*x) for x in xrange(RowNum)] # write the values on sheet for i in xrange(RowNum): # セルの値を書き変える eggCellx = xlSheet.Cells(i+1, 1) eggCelly = xlSheet.Cells(i+1, 2) eggCellx.Value = xval[i] eggCelly.Value = yval[i] # close the sheet # 起動していたExcelが終了する #xlApp.Quit()
このコードを実行すると、下図のようにExcelファイルが開いて新しいグラフが表示される。