はじめに
Excelのシートを使ってちょこちょことデータを出力するアプリケーションが必要になり、そこではpythonを使うことになりました。
pythonの文法は興味レベルで少しだけ知ってますが、実務で使えるかな……大丈夫でしょうかと思いつつも早速やってみました。
インストール
さっそくpython3をインストールし、pandas等必要なライブラリをインストールしました。
- python …… 御存知人気プログラム言語のインタープリタ。今回は3.64を使用しました。
- numpy …… pythonで数値計算を行うためのライブラリです。
- xlrd …… pythonでExcelファイルを読み込むためのライブラリです。
- pandas …… pythonでもっと便利にExcelファイルを扱うライブラリです。上記2つのライブラリが必要です。
ちなみに私の環境では、前回Visual Studioをインストールしたときに
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64
にインストールされていました……ここを使っていいのかな? 一応インストーラーを実行して$PATHを追加しようとすると、ここに設定されます。本当にいいのだろうか。
未検証ですが、pipで他のライブラリのインストーラーを実行するときに、コマンドプロンプトに管理者権限を与えないとエラーが起こるような気がします。
この辺は機会があるときに整理せねば。
実行してみる
さっさく実験プログラムを書いてみました。(Converter.py)
# Converter.py
import pandas as pd
print("Excel Converter ver0.0.0.1")
filename = "C:\work\in\実験.xlsx"
# ファイルのロード
file = pd.ExcelFile(filename, encoding='utf8')
df_list = []
# シートを読み、シートの内容をデータフレームとして取得し、リストに追加する
for sheet in file.sheet_names:
df_list.append(file.parse(sheet))
# とりあえずprintで画面に表示
print(df_list)
コマンドプロンプトで以下を入力
python Converter.py
読めてる!
ほんの数行のコードですが確かに読めてる!
python君すごい! 出来る子!
と感動しました。まあ実際はライブラリに読み込ませてDataFrameを作成し、printにそのリストを丸ごと突っ込んで表示してるだけなんですが、それでも意図したように書きやすいと思いました。人気なのも納得です。
実際に各行ごとに処理を行わせたい場合など、for~in文でDataFrameのiterrows回したりして手軽に行えるようです。それはまた次回に触れます。
ここまでお読みいただきありがとうございました。