Skip to content
Twitter
edu-IT Practical Labo
【名古屋】
edu-IT Practical Laboedu-IT Practical Labo
  • Home
  • Blog
  • Services
    • Programming Typing
    • Basic WEB-TECH Lesson
    • IT-SKILL Training
  • Contact
 
  • Home
  • Blog
  • Services
    • Programming Typing
    • Basic WEB-TECH Lesson
    • IT-SKILL Training
  • Contact

PySimpleGUIの使い方マスター①~Excelファイルを読み込んで表の内容を出力をするGUIツールを作ってみよう

You are here:
  1. Home
  2. edu-IT
  3. PySim…
3月162022
edu-ITExcelPython

ツールを導入・運用する為、VBAのような他のプログラミング言語を使って開発したことがあるいう方もいらっしゃると思います。使用用途に合わせて、設計をしたツールを作成していく場合、Pythonを利用したほうが、データ処理・分析・解析する際にコードを書きやすい、またはメンテナンスをしやすいというケースもあるでしょう。

今回作成するGUIツールでは、「PySimpleGUI」ライブラリの使い方をまず確認していきたいと思います。他にもPythonではTkinterライブラリを使ってGUIツールを作成するということもできますので、興味のある方は、以下の記事もご覧いただければと幸いです。

・【Tkinterの記事】 Pythonで「標準体重計算」と「電卓」のプログラムを書いてみよう~文字列と数値の扱い/入力処理/GUIツール(Tkinter)の基礎を確認



 
では実際に「PySimpleGUI」ライブラリを使ってGUIツールの使い方について簡単にサンプルで確認後、Excelファイルを読み込んで表の内容を出力するGUIツールの作り方をみていきたいと思います。

他にも「こんなGUIツールをPythonで作ってみたい!」と具体的にイメージしてみると、学習するメリットを感じることができ、面白いと感じられるかもしれません。

 
それではまず、VSCodeにてPySimpleGUIライブラリの基本的な使い方を確認していきましょう。

演習問題のダウンロードはこちらから

 

Contents

  • 1 PySimpleGUIの基礎~基本的な使い方
  • 2 PySimpleGUI の手始め~メッセージ出力/文字入力とテキストボックスの値受け取り
  • 3 問題1:PySimpleGUIのサンプル実行~テキスト入力とラジオボタンで入力した結果をメッセージ出力するサンプルを実行
  • 4 問題2:PySimpleGUIのサンプル実行 ~ 課題(Excel読込後の処理判定)の画面レイアウトを作成
  • 5 xlwings とは ~基本的な使い方
  • 6 xlwings ライブラリの使い方
  • 7 問題3:xlwingsの使い方①~ExcelファイルのA1セルに「はじめて試すxlwings」と値を書き込む
  • 8 問題4:xlwingsの使い方②~Excelファイルにシートを追加して、値を書き込む
  • 9 問題5【課題】:Excel読込後の処理実装~問題2にて作成した画面レイアウトに処理を記述

PySimpleGUIの基礎~基本的な使い方

 

【参考サイト】:PySimpleGUIの基礎解説

 次のようなサンプル作成を通して、PySimpleGUIの基礎について学んでいきましょう。

 

・インストール

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

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

pip install PySimpleGUI

 

PySimpleGUI の手始め~メッセージ出力/文字入力とテキストボックスの値受け取り

インストール後に以下のコードを実行して、メッセージが表示されることを確認しましょう。

 

import PySimpleGUI as sg

sg.popup("はじめての「PySimpeGUI」", title="PySimpleGUIのサンプル")

 

次は、問題演習を通して、PySimpleGUIの画面レイアウト作成と中身の処理を実装しましょう。

 

問題1:PySimpleGUIのサンプル実行~テキスト入力とラジオボタンで入力した結果をメッセージ出力するサンプルを実行

以下のサンプルコードを読み、
 テキスト入力とラジオボタンで入力した結果をメッセージ出力するサンプルを実行してください。

 import PySimpleGUI as sg

# 画面レイアウトを指定
layout = [  
  [sg.Text('名前', size=(15,1)), sg.InputText('',size=(15,1), key='tx1'
)],
  [sg.Text('血液型')],
  [sg.Radio('A型' , group_id='g1', key='A-type'),sg.Radio('B型' , group_id='g1', key='B-type')],
  [sg.Radio('O型' , group_id='g1', key='O-type'),sg.Radio('AB型' , group_id='g1', key='AB-type')],
  [sg.Button(button_text='Click', key='bt1')]
  ]

# ウィンドウ作成
window = sg.Window('血液型は?', layout)

# イベントループ
while True:
    event, values = window.read()   #イベントの読み取り
    if event == 'bt1':
        if values['A-type'] == True:
            output = 'A型'
        elif values['B-type'] == True:
            output = 'B型'
        elif values['O-type'] == True:
            output = 'O型'
        elif values['AB-type'] == True:
            output = 'AB型'
        else:
            output = '無回答'

        sg.popup(values['tx1'] +'さんの血液型は' + output +'です。')
    elif event is None:
        break

window.close()

 

問題2:PySimpleGUIのサンプル実行 ~ 課題(Excel読込後の処理判定)の画面レイアウトを作成

以下のサンプルのように(PySimpleGUIの基礎解説の参考サイトや他のWebサイトを参考にしながら)Excelファイルを読み込む画面レイアウトを作成してください。

 

xlwings とは ~基本的な使い方

xlwingsツールを使うことで、PythonでもExcelマクロ(VBA)のように操作することができます。

・「xlwings」の公式サイト
https://docs.xlwings.org/ja/latest/quickstart.html

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

import xlwings as xw

 

xlwings ライブラリの使い方

以下の手順で、Excelブックを作成(または選択後)に、シート操作し、保存します。

 

問題3:xlwingsの使い方①~ExcelファイルのA1セルに「はじめて試すxlwings」と値を書き込む

以下のサンプルのように「hello.xlsx」と「xlwings.py」ファイルを作成後に
実行して、hello.xlsxファイルのA1セルに「はじめて試すxlwings」と表示されるかを確認してください

► コード(xlwings_hello.py)

import xlwings as xw
 
wb = xw.Book('hello.xlsx') 
xw.Range('A1').value = 'はじめて試すxlwings'
# 必要に応じて記載
# wb.save('hello.xlsx')
# wb.close()

 
► 実行結果

 
次は、xlwings でExcelブックを生成し、追加したシートに値を書き込む例についてみていきましょう。

import xlwings as xw
import pandas as pd
 
#シートに書き込む値を準備
data = [[1,'東京都'],[2,'神奈川県'],[3,'大阪府'],[4,'愛知県'],[5,'埼玉県']]
df = pd.DataFrame(data, columns = ['Rank','Prefecture'])
 
#Excelが画面に表示されないようにする
xw.App(visible=False)
 
#Excelブックを新規作成し、シートに値を書き込む
wb = xw.Book()
sheet = wb.sheets.add('サンプル')
sheet.range('A2').value = data
sheet.range('A1').options(index=False,header=True).value = df
 
#ファイルの保存とブックのクローズ
wb.save('sample.xlsx')
wb.close()

 

問題4:xlwingsの使い方②~Excelファイルにシートを追加して、値を書き込む

xlwingsを利用して、次のようにExcelファイルに「サンプル」シートを追加し、値を書き込んでください。

import xlwings as xw
import pandas as pd
 
#シートに書き込む値を準備
data = [['1月','200,000','150,000'],['2月','210,000','155,000'],['3月','205,000','145,000']]
df = pd.DataFrame(data, columns = ['月','収入','支出'])
 
#Excelが画面に表示されないようにする
xw.App(visible=False)
 
#Excelブックを新規作成し、シートに値を書き込む
wb = xw.Book()
sheet = wb.sheets.add('サンプル')
sheet.range('A2').value = data
sheet.range('A1').options(index=False,header=True).value = df
 
#ファイルの保存とブックのクローズ
wb.save('budget.xlsx')
wb.close()

 

問題5【課題】:Excel読込後の処理実装~問題2にて作成した画面レイアウトに処理を記述

問題2にて作成した以下の画面レイアウトにて「xlwingsの使い方②」で値の書き込みをしたExcelを読み込んだ後に
確認ボタンを押下した際に、Excelの内容が表示されるよう実装をしてください。

`
 
====================================
業務でPythonを使ってツールを作ったり、自動化処理を記述したりする機会がある方もいらっしゃると思います。自身のPCでVisual Studio Codeを使って簡単に今回のサンプルを試すことができますので、この機会にPythonに触れる時間を作っていただけると嬉しい限りです。

以上となります。

Category: edu-IT, Excel, PythonBy semi3del2022年3月16日Leave a comment
Share this post
Share with Google+Share with FacebookShare with Twitter

Author: semi3del

Post navigation

PreviousPrevious post:PySimpleGUIでGUIツール作成~取り込んだcsvファイルのデータをSQLiteデータベースに登録してみようNextNext post:Pythonフレームワーク「Streamlit」の基礎~2次元の表を基にグラフ描画&データ可視化してみよう

Related Posts

CodeSandboxでReactのTodoリストを作成してみよう
2025年3月31日
Pythonライブラリ「Scrapy」でスクレイピング~Webサイトからデータを取得してみよう
2025年1月27日
はじめてのLambda~関数のサンプルを作ってみよう
2024年9月18日
GitHub Actions入門~Cloud9でGitHub ActionsのHelloWorldを実行してみよう
2023年11月28日
Web APIをPythonで使ってみる~Fast APIの基礎
2023年9月25日
FigmaからReactのコード生成するプラグインを使ってUIコンポーネントを作成してみよう
2023年7月4日

コメントを残す コメントをキャンセル

Your email address will not be published. Required fields are marked *

Post comment

最近の投稿
  • CodeSandboxでReactのTodoリストを作成してみよう
  • Pythonライブラリ「Scrapy」でスクレイピング~Webサイトからデータを取得してみよう
  • CodeSandboxでReactのフォーム部品を操作してみよう
  • はじめてのLambda~関数のサンプルを作ってみよう
  • Canva入門~テンプレートでプレゼン資料を作成してみよう
アーカイブ
  • 2025年3月
  • 2025年1月
  • 2024年11月
  • 2024年9月
  • 2024年8月
  • 2024年6月
  • 2024年4月
  • 2024年1月
  • 2023年11月
  • 2023年9月
  • 2023年7月
  • 2023年5月
  • 2023年3月
  • 2023年1月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年6月
  • 2022年5月
  • 2022年3月
  • 2022年1月
  • 2021年11月
  • 2021年9月
  • 2021年7月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年1月
  • 2020年11月
  • 2020年9月
  • 2020年6月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2017年7月