1
3

More than 1 year has passed since last update.

PyLadies勉強会(OpenPyXLライブラリ研究) 参加レビュー ~ 4月29日@飯田橋

Last updated at Posted at 2022-04-30

今回、初めてPyLadies Tokyo のオフライン勉強会(4月29日 13:00~17:00 @ 飯田橋)に参加してきました。

PyLadies Tokyoとは?
image.png

当日は
PyLadiesの概要説明 ⇒ 課題着手 ⇒ 発表という流れで

Staffの方にサポートして頂きながら、実際にPythonライブラリについて調べていき、各人それぞれ簡単にGoogleSlideにまとめて発表をしました。

以下、OpenPyXLライブラリについて調べた内容について記載していきます

はじめに

ツールを導入・運用する為、VBAのような他のプログラミング言語を使って開発したことがあるいう方もいらっしゃると思います。

使用用途に合わせて、設計をしたツールを作成していく場合、Pythonを利用したほうが、データ処理・分析・解析する際にコードを書きやすい、またはメンテナンスをしやすいというケースもあるでしょう。

今回、Excelの読み書きをPythonで行う為のモジュールであるOpenPyXLライブラリとPySimpleGUIライブラリを使い、

以下のようなExcelファイルを読み込んで、処理内容を表示する例を実装しました。(少し予習しました)
image.png

画面レイアウトは「PySimpleGUI」ライブラリを使って作成しました。

PySimpleGUIとは

image.png

【参考サイト】:PySimpleGUIの使い方についての基礎解説
http://www.k-techlabo.org/blog2/?page_id=1481

まず、PySimpleGUIライブラリを使ってGUIツールの画面レイアウトを作成してみます。

・PySimpleGUIのインストール

pipというPythonのパッケージ管理ツールを使って、「PySimpleGUI」をインストールします。

pip install PySimpleGUI

※ Pythonインストール時に標準で入っているパッケージ以外をインストールする場合、
「pip install パッケージ名」のコマンドで、ローカル環境のPowerShellにてインストールをします。
image.png

► サンプルコード(画面レイアウト作成): layout_PySimpleGUI.py

サンプルコード(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('処理内容の実装前')     

実行すると、画面レイアウトが表示されるのを確認できると思います。
image.png

OpenPyXLとは

OpenPyXLとは「マクロ(VBA)のようにExcel操作できるライブラリ」です。

・「OpenPyXL」の公式サイト
https://openpyxl.readthedocs.io/en/stable/

・OpenPyXLのインストール

pip install パッケージ名」のコマンドで、ローカル環境のPowerShellにてインストールをします。

pip install openpyxl

基本的な処理の流れ
image.png

【実践編】:OpenPyXLの使い方~ExcelファイルのA1セルに「はじめて試すOpenPyXL」と値を書き込む

以下のサンプルのように「openpyxl_hello.py」ファイルを作成後に
実行して、hello.xlsxファイルのA1セルに「はじめて試すOpenPyXL」と表示されることを確認しました。

A1セルに値を書き込む(openpyxl _hello.py)
import openpyxl as op

wb = op.Workbook()
sheet = wb.active
sheet['A1'] = 'はじめて試す openpyxl'

# 必要に応じて記載
# wb.save('sample.xlsx')
# wb.close()

► 実行結果
image.png
先程作成した画面レイアウトを使って、
A1セルに「はじめて試すopenpyxl 」と値が書き込みされたExcelを読み込んだ後に
確認ボタンを押下した際に、内容が表示されるよう実装をしてみます。

image.png

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に触れる時間を作っていただけると嬉しい限りです。

以上となります。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3