今回、初めてPyLadies Tokyo のオフライン勉強会(4月29日 13:00~17:00 @ 飯田橋)に参加してきました。
■ PyLadies Tokyoとは?
当日は
PyLadiesの概要説明 ⇒ 課題着手 ⇒ 発表という流れで
Staffの方にサポートして頂きながら、実際にPythonライブラリについて調べていき、各人それぞれ簡単にGoogleSlideにまとめて発表をしました。
以下、OpenPyXLライブラリについて調べた内容について記載していきます
はじめに
ツールを導入・運用する為、VBAのような他のプログラミング言語を使って開発したことがあるいう方もいらっしゃると思います。
使用用途に合わせて、設計をしたツールを作成していく場合、Pythonを利用したほうが、データ処理・分析・解析する際にコードを書きやすい、またはメンテナンスをしやすいというケースもあるでしょう。
今回、Excelの読み書きをPythonで行う為のモジュールであるOpenPyXLライブラリとPySimpleGUIライブラリを使い、
以下のようなExcelファイルを読み込んで、処理内容を表示する例を実装しました。(少し予習しました)
画面レイアウトは「PySimpleGUI」ライブラリを使って作成しました。
PySimpleGUIとは
【参考サイト】:PySimpleGUIの使い方についての基礎解説
http://www.k-techlabo.org/blog2/?page_id=1481
まず、PySimpleGUIライブラリを使ってGUIツールの画面レイアウトを作成してみます。
・PySimpleGUIのインストール
pipというPythonのパッケージ管理ツールを使って、「PySimpleGUI」をインストールします。
pip install PySimpleGUI
※ Pythonインストール時に標準で入っているパッケージ以外をインストールする場合、
「pip install パッケージ名」のコマンドで、ローカル環境のPowerShellにてインストールをします。
► サンプルコード(画面レイアウト作成): layout_PySimpleGUI.py
import PySimpleGUI as sg
layout = [
[sg.Text("ファイル"), sg.InputText(), sg.FileBrowse('ファイル選択', key="inputFilePath")],
[sg.Button('確認')],
[sg.Text(" ↓↓ 読み込んだExcel の内容を表示:")],
[sg.Multiline(default_text='', size=(60,10), border_width=2, key='tb1')],
[sg.Button('閉じる')]
]
window = sg.Window("ファイル読込", layout)
# イベントループ
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == '閉じる':
break
elif event == '確認':
# 処理の内容を記載
sg.popup('処理内容の実装前')
実行すると、画面レイアウトが表示されるのを確認できると思います。
OpenPyXLとは
OpenPyXLとは「マクロ(VBA)のようにExcel操作できるライブラリ」です。
・「OpenPyXL」の公式サイト
https://openpyxl.readthedocs.io/en/stable/
・OpenPyXLのインストール
「pip install パッケージ名」のコマンドで、ローカル環境のPowerShellにてインストールをします。
pip install openpyxl
【実践編】:OpenPyXLの使い方~ExcelファイルのA1セルに「はじめて試すOpenPyXL」と値を書き込む
以下のサンプルのように「openpyxl_hello.py」ファイルを作成後に
実行して、hello.xlsxファイルのA1セルに「はじめて試すOpenPyXL」と表示されることを確認しました。
import openpyxl as op
wb = op.Workbook()
sheet = wb.active
sheet['A1'] = 'はじめて試す openpyxl'
# 必要に応じて記載
# wb.save('sample.xlsx')
# wb.close()
► 実行結果
先程作成した画面レイアウトを使って、
A1セルに「はじめて試すopenpyxl 」と値が書き込みされたExcelを読み込んだ後に
確認ボタンを押下した際に、内容が表示されるよう実装をしてみます。
import PySimpleGUI as sg
import openpyxl as op
layout = [
[sg.Text("ファイル"), sg.InputText(), sg.FileBrowse('ファイル選択', key="inputFilePath")],
[sg.Button('確認')],
[sg.Text(" ↓↓ 読み込んだExcel の内容を表示:")],
[sg.Multiline(default_text='', size=(60,10), border_width=2, key='tb1')],
[sg.Button('閉じる')]
]
window = sg.Window("ファイル読込", layout)
# イベントループ
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == '閉じる':
break
elif event == '確認':
# 処理の内容を記載
# sg.popup('処理内容の実装前')
wb = op.Workbook()
sheet = wb.active
sheet['A1'].value = 'はじめて試す openpyxl'
window['tb1'].print(sheet['A1'].value)
window.close()
業務でPythonを使ってツールを作ったり、自動化処理を記述したりする機会がある方もいらっしゃると思います。自身のPCでVisual Studio Codeを使って簡単に今回のサンプルを試すことができますので、この機会にPythonに触れる時間を作っていただけると嬉しい限りです。
以上となります。