1
/
5

ExcelマクロでやったことをPythonでやってみた

こんにちは、三橋です。
前回の記事でPythonでグラフを作成するExcelマクロを実行しましたが、今回は実行していたグラフを作成するExcelマクロをPythonで実行してみたいと思います。
https://www.wantedly.com/companies/qualias/post_articles/497003

PythonでExcel上のデータを元にグラフを作成する

前回はxlwingsを使用しましたが、今回はマクロを使用しないのでopenpyxlを使用し、実行してみたいと思います。
openpyxlとはPythonでExcelを操作することが可能なライブラリです。
大まかなxlwingsとの違いはxlwingsはExcelを必要としますが、
openpyxlはExcelがインストールされていなくても動作します。
また、処理速度もopenpyxlの方が8倍ほど早いと言われています。

まずopenpyxlをインポートし使用できるようにします。そしてPythonのプログラムと同じフォルダに「test2.xlsx」というExcelがあるとします。Pythonのプログラムは以下のようになります。

import openpyxl
from openpyxl.chart import Reference
from openpyxl.chart.axis import DateAxis

wb = openpyxl.load_workbook('./test2.xlsx')
sheet = wb['test']

graph_obj = openpyxl.chart.BarChart() 
graph_obj.title  = "売上" 
graph_obj.style  = 12
graph_obj.height = 10
graph_obj.width  = 15

Y_axis = Reference(sheet, min_col=2, min_row=2, max_col=2, max_row=14)
graph_obj.add_data(Y_axis, titles_from_data=True)
X_axis = Reference(sheet, min_col=1, min_row=3, max_col=1, max_row=14)
graph_obj.set_categories(X_axis)

sheet.add_chart(graph_obj, "E3")

wb.save('./test2.xlsx')

Pythonを実行します。

python3 test2.py

以下のようにグラフが作成されたので成功しました。

PythonでExcelマクロと同じ処理を書くことが出来るので、わざわざExcelマクロを作成しPythonで呼び出さずに処理を全てPythonで書いてしまった方がソースの管理もしやすいですね。

株式会社クオリアシステムズでは一緒に働く仲間を募集しています

株式会社クオリアシステムズ's job postings
2 Likes
2 Likes

Weekly ranking

Show other rankings
Like 三橋 遥香's Story
Let 三橋 遥香's company know you're interested in their content