なぜPython?Excelを操作して自動化したいのです!その方法と注意点

昨日まででDockerでの開発環境構築は一応完成し落ち着いたので、やっとPythonの勉強を再開することにしました。
自分の現在のPythonの勉強方法と、ちょっと注意すべきことがありましたので以下に述べていこうと思います。



目次



なぜPython? それはExcelを操作して自動化したいのです

そもそもPythonを覚えて何をしたいか。
それはExcelを操作して自動化したい、ということです。

私の本職は一応デザイナーを名乗っていて、ロゴ制作やWEB制作などをしていますが、InDesignで組版もしています。というか前職のメインはこちらでした。
冊子を組版したりもしていましたが、バリアブル印刷用にExcelでテキスト処理(主に関数を駆使して)してInDesignにデータ結合などで流し込みをしたりもよくしていました。
Excel関数だと関数自体が煩雑になりやすくて、自分で作っておきながら後で見返すと何がなんだか分からなくなる、それほどです。
で、このExcelでのテキスト処理をもっと効率よくしたいと。



Pythonの教科書として購読中の書籍

Python本は、『Python本のオススメと絶対に挫折しないための学習方法とは | ガンマソフト株式会社』を参考に以下のものを購入しました。

そもそもこの本を進めていって、TurtleやTkinterが動かなくて、DockerでGUIライブラリを稼働させるように構築しようと思った次第です。それだけでも買ってよかったです。
この書籍の後半は人工知能の話になるので割愛しましたが、懇切丁寧な解説でPythonの敷居を低めてくれました。

続けて、こちらを購入しました。Pythonの文法といいますか書き方といいますか、1冊目より深い解説をされていて、辞書的に使えるかなと思っています。ですので、この本は全体をざっと読むに留め、不明点がある時に読み返そうと思います。
後半はGUIの操作やゲームを作ることをしますので、そちらに興味のある方はいいのではないでしょうか。



PythonでExcel操作の開始

そして今日からこちらの本で、Excelシートを操作することを勉強しています。
で、PythonでExcelを操作するにはopenpyxlモジュールのインストールが必要になりますので、早速インストールします。

私の場合、Docker Container内にインストールするので、またそれにpip3をインストール済みなので、Docker Containerに入り、以下のコマンドをTerminalに打ち込みます。

pip3 install openpyxl

「pip3」の箇所は、「pip」の場合もありますので、皆さんの環境に合わせて随時変更してください。

openpyxlモジュールを追加したので、忘れずDockerfileにも追記します。

FROM ubuntu:latest
LABEL version="1.0" \
      maintainer="eszett design" \
      description="Dockerで構築したJupyterlabからPython TKinterを操作できるDocker imageとContainerを作成"
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
		python3 \
		python3-pip \
		libx11-dev \
		python3-tk
RUN pip3 install jupyterlab \
		pillow \ #画像処理ライブラリ
		openpyxl #pythonでexcelを操作するモジュール


注意点

退屈なことはPythonにやらせよう〜』、私が購入したのは初版第1刷で2017年発刊分です。
だからか、載っているプログラム例の関数などで警告が出るものがあります。どうも関数の書式が大幅に変更になっているようです。

例えば、

import openpyxl
openpyxl.load_workbook('excelファイル名').get_sheet_names()

とあるのですが、「get_sheet_names()」はJupyterlabで警告が出て(結果は表示される)、代わりに「sheetnames」を使えと表示されます。

import openpyxl
openpyxl.load_workbook('excelファイル名').sheetnames

と書き換えると、無事結果(Excelファイルにあるシート名全て)が出力されます。

ついでに、「get_sheet_by_name('シート名')」も、「['シート名']」に変更になっていたりします。

その他、Githubの方に、サンプルファイルに加えて正誤表もありますので、ぜひご確認ください。

というわけで、この本は、最新版の購入をおすすめします。内容は充実していて、PDFやWordの操作もやってみようと思っています。



というわけで、Pythonの勉強を進めていきます。










Comments

よく読まれている記事

CSSボタンでテキストを天地中央に揃えるとき、なぜボタン高と行高を一緒にするのか

FullCalendarの導入からカレンダー毎の色指定まで

FacebookページのフィードURLを取得しウォールを自サイトに表示

Bloggerテンプレートのちょっとしたカスタマイズのまとめ

document.write() 複数行の記述方法