はじめに
バディットコンサルティングのITエンジニア wahooです。
今日は、Python3を使って、Excelファイルの内容を読み込んで、セルに入力されている値を処理して、テキストファイルに保存してみようと思います。
Python3のインストール
Windows上で、Pythonが使えるようにインストールをしていきます。
まずは、次のサイトからPython3のインストールファイルをダウンロードします。



OSにより、64bitか32bitのインストーラーを選んでダウンロードします。
ダウンロードが終わったら、実行して、インストールをしていきます。


インストールの最初に、PythonのPATHを追加するチェックをつけて、インストールを開始します。


これで、Python3のインストールができました。「Close」で、終了します。
Excelファイルの読み書きをするためのパッケージのインストール
Excelファイルの読み書きをするために必要なPythonパッケージのインストールをしていきます。
必要なパッケージは、「pandas」と「xlrd」になります。
また、インストールには、インターネット接続が必要です。
pandasのインストール
コマンドプロンプトを起動して、コマンドを使って、インストールしていきます。
次のコマンドを実行すると、インストールすることができます。
>pip install pandas
※pipコマンドのアップグレードの注意が表示された場合、表示されたメッセージ通りにコマンドを実行します。
>python -m pip install --upgrade pip
xlrdのインストール
次のコマンドを実行すると、インストールすることができます。
>pip install xlrd
Pythonプログラミング
環境が整ったので、さっそく簡単にプログラミングをしていきます。
Excelファイル
テスト用に、次のようなExcelファイルを用意しました。


Pythonプログラム
今回は、テスト用に用意したExcelファイルを読み込んで、コマンドラインに表示して、「EEE」列に入力されているテキストの最初の「-」までを先頭にした「xxxtest.txt」に決まったテキストを出力する様にしてみました。
# ライブラリ/パッケージのインポート import os import glob import pandas as pd # remove_glob関数 def remove_glob(pathname, recursive = True): for p in glob.glob(pathname, recursive = recursive): if os.path.isfile(p): os.remove(p) # default_file_output関数 def default_file_output(file): file.write('! test config\n') return 0 # Excelファイルの読み込み df = pd.read_excel('test.xlsx') # Excelファイルの画面出力 print(df) # 出力テキストファイル名 filename = 'test.txt' # 出力テキストファイルの削除 fn = '*' + filename remove_glob(fn) # Excelファイルを行単位で処理 i = -1 for row in df.values: i = i + 1 if 2 <= i <= 11: if int(row[0]) > 0: # 出力テキストファイル名 fn = row[5].split('-')[0] + filename # 出力テキストファイルのオープン with open(fn, mode = 'a') as f: # 出力テキストファイルの書き込み default_file_output(f)
こんなプログラムを作ってみました。
Microsoft Windows [Version 10.0.17134.1184] (c) 2018 Microsoft Corporation. All rights reserved. X:\UsersMicrosoft Windows [Version 10.0.17134.1184] (c) 2018 Microsoft Corporation. All rights reserved. X:\Users\0056562\Documents\Python>test.py Unnamed: 0 Test Excel Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 0 NaN NaN NaN NaN NaN NaN 1 No. AAA BBB CCC DDD EEE 2 1 a1 1000 10 1010 ABC-123-abc 3 2 a2 2000 20 2020 ABC-456-abc 4 3 a3 3000 30 3030 ABC-789-abc 5 4 a4 4000 40 4040 DEF-123-abd 6 5 a5 5000 50 5050 DEF-456-abe 7 6 a6 6000 60 6060 DEF-789-abf 8 7 a7 7000 70 7070 GHI-123-xy1 9 8 a8 8000 80 8080 GHI-456-xy2 10 9 a9 9000 90 9090 GHI-789-xy3 11 10 a10 10000 100 10100 ABC-123-def 12 NaN NaN 55000 550 55550 NaN X:\Users\0056562\Documents\Python>56562\Documents\Python>test.py Unnamed: 0 Test Excel Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 0 NaN NaN NaN NaN NaN NaN 1 No. AAA BBB CCC DDD EEE 2 1 a1 1000 10 1010 ABC-123-abc 3 2 a2 2000 20 2020 ABC-456-abc 4 3 a3 3000 30 3030 ABC-789-abc 5 4 a4 4000 40 4040 DEF-123-abd 6 5 a5 5000 50 5050 DEF-456-abe 7 6 a6 6000 60 6060 DEF-789-abf 8 7 a7 7000 70 7070 GHI-123-xy1 9 8 a8 8000 80 8080 GHI-456-xy2 10 9 a9 9000 90 9090 GHI-789-xy3 11 10 a10 10000 100 10100 ABC-123-def 12 NaN NaN 55000 550 55550 NaN X:\UsersMicrosoft Windows [Version 10.0.17134.1184] (c) 2018 Microsoft Corporation. All rights reserved. X:\Users\0056562\Documents\Python>test.py Unnamed: 0 Test Excel Unnamed: 2 Unnamed: 3 Unnamed: 4 Unnamed: 5 0 NaN NaN NaN NaN NaN NaN 1 No. AAA BBB CCC DDD EEE 2 1 a1 1000 10 1010 ABC-123-abc 3 2 a2 2000 20 2020 ABC-456-abc 4 3 a3 3000 30 3030 ABC-789-abc 5 4 a4 4000 40 4040 DEF-123-abd 6 5 a5 5000 50 5050 DEF-456-abe 7 6 a6 6000 60 6060 DEF-789-abf 8 7 a7 7000 70 7070 GHI-123-xy1 9 8 a8 8000 80 8080 GHI-456-xy2 10 9 a9 9000 90 9090 GHI-789-xy3 11 10 a10 10000 100 10100 ABC-123-def 12 NaN NaN 55000 550 55550 NaN X:\Users\0056562\Documents\Python>56562\Documents\Python>
X:\UsersX:\Users\0056562\Documents\Python>tree /F フォルダー パスの一覧: ボリューム PersistentDataDisk ボリューム シリアル番号は 9CBC-7C51 です X:. ABCtest.txt DEFtest.txt GHItest.txt test.py test.xlsx サブフォルダーは存在しません X:\Users\0056562\Documents\Python>56562\Documents\Python>tree /F フォルダー パスの一覧: ボリューム PersistentDataDisk ボリューム シリアル番号は 9CBC-7C51 です X:. ABCtest.txt DEFtest.txt GHItest.txt test.py test.xlsx サブフォルダーは存在しません X:\UsersX:\Users\0056562\Documents\Python>tree /F フォルダー パスの一覧: ボリューム PersistentDataDisk ボリューム シリアル番号は 9CBC-7C51 です X:. ABCtest.txt DEFtest.txt GHItest.txt test.py test.xlsx サブフォルダーは存在しません X:\Users\0056562\Documents\Python>56562\Documents\Python>
実行結果としては、「ABCtest.txt」「DEFtest.txt」「GHItest.txt」の3ファイルが作られて、それぞれ、「4行」「3行」「3行」 という結果となります。
まとめ
このくらいのことを実現するのは、思ったよりは、簡単でした。
Excelファイルの読み込みもパッケージがあるので、非常に簡単ですね。これで、Excelファイルで作られた資料を元に、別のテキストファイルや別のExcelファイルの作成ができると思います。
例えば、設計資料から各機器の設定ファイルの作成などに活用できるかなと思います。
ここから先は、Pythonでできることがたくさんあると思うので、色々な場面で使うことができるように、Pythonを学習していこうと思います。
では、また、次回!!