Excelの値をPythonで取得する方法

お久しぶりです。プログラマーJです。
ゲームデータをExcelで管理することもあると思います。その際、バイナリデータに変換することで、ビルドすることなくパラメータを変更することが可能です。
そこで今回はPythonでExcelのデータを取得する方法をご紹介します。

 

環境

・Windows 10
・Python 3.7.1
・pywin32

 

pywin32とは

pywin32はCOMオブジェクトを介してExcelを操作できるモジュールです。

 

導入方法

コマンドプロンプトで以下を実行します。

 

使い方

上記のコードを実行するとわかるのですが、非常に時間がかかります。
このままでは作業に支障をきたすぐらい遅いので高速化を行います。

 

高速化

for文で表示しているところを計測します。処理のばらつきを考慮し、3回行った平均にします。

結果は 6.5105476秒 でした。
遅い原因はCells関数が現在のプロセスからExcelのプロセス(EXCEL.EXE)にアクセスし、大量のオーバーヘッドを発生をさせているためです。
なのでCells関数を使わない方法でアクセスします。

wk.Valueはシートのデータを取得しているので、それをキャッシュすることで高速に値を取得できます。
こちらも同じように3回の平均を計測したところ、0.1483422秒 でした。
速度が97.7%向上し、高速化に成功しました。

 

最後に

お手軽にExcelの値を取得することができました。あとはstructモジュールを使用すれば、バイナリデータも作成できます。
また、.xlsxはバイナリデータなので中間ファイルに出力することでファイル管理も楽にしたいところですね。
(Visited 8,742 times, 1 visits today)

コメント投稿は締め切りました。