PythonアプリをExe化し、ワンクリックでエクセルを操作する方法

概要

エクセルの編集操作をワンクリックで行いたいと要望があったので、備忘録として残します。 PyInstaller は、Python スクリプトを簡単に実行可能ファイルに変換できる便利なツールです。 また、OpenPyXL は、Python で Excel ファイルを読み書きするための優れたライブラリです。ここでは、PyInstaller と OpenPyXL をバンドルしたアプリを開発する手順を説明します。

version 確認

python: v3.11.2
openpyxl: v3.1.1
pyinstaller: v5.8.0

モジュールのインストール

まずは、openpyxl をインストールします。以下のコマンドを実行してください。

pip install openpyxl

次に、pyinstaller をインストールします。以下のコマンドを実行してください。

pip install pyinstaller

ソースコード全体

from openpyxl import load_workbook

# Excelファイルの読み込み
wb = load_workbook('input.xlsx')

# シートの取得
ws = wb.worksheets[0]

# セルの取得
cell = ws.cell(row=1, column=1)

# セルに値を設定
cell.value = 'Hello, world!'

# Excelファイルの保存
wb.save('output.xlsx')

スクリプトの変換

pyinstaller --onefile your_script.py

ここで、your_script.py は変換したい Python スクリプトのファイル名に置き換えてください。

このコマンドは、your_script.py を 1 つの実行可能ファイルにまとめ、dist ディレクトリに出力します。

実行可能ファイルの実行

最後に、/dist に生成された実行可能ファイルを実行してください。実行可能ファイルは、Python の実行環境を必要とせず、他の人が簡単に実行できるようになります。

以上が、Python スクリプトを単一のファイルにまとめ、実行可能ファイルに変換する手順です。PyInstaller を使用することで、Python スクリプトを他の人と共有する際に、Python の環境をインストールする手間を省くことができます。ぜひ、お試しください。

管理しやすいプロジェクト構成(おまけ)

Exe 化について上の方法でうまくいきますが、他プロジェクトメンバーに共有するときは不便です。 ですので npm scripts を記述して、より簡潔にします。

  • 補足 npm scripts を使用するためには、node.js をインストールしてください

バージョン管理のために requipments を作成する

// requipments.txt
pyinstaller >= 5.8.0
openpyxl >= 3.1.1
// package.json
{
  "name": "pyinstaller_openpyxl",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "install": "pip install -r requirements.txt",
    "start": "python main.py",
    "build": "pyinstaller --onefile main.py"
  },
  "author": "",
  "license": "ISC"
}


以下ファイルを作成したら、npm scripts を使用して pyinstaller と openpyxl をインストールします。

npm run install

インストールが完了したら、npm scripts を使用し、Exe 化を行います。

npm run build

プロジェクトについては以下に挙げておくので参照してみてください https://github.com/wiblok/python/tree/main/pyInstaller