Pythonでエクセルを自動化[Mac編]





「全然仕事が終わらない。。」

「エクセルへのデータ入力を自動化したい!

 

こういったお悩みを持たれている方が数多くいらっしゃいます。

 

昔は残業さえしてしまえば時間で解決できる問題ではありましたが、最近では働き方改革によって「早く帰れ!」と上司から注意され、強制的に帰らされる事があるのではないでしょうか?

 

そういった時代では残った仕事を家に持ち帰り、寝る時間を惜しんで作業をするハメになります。

 

本来であれば、家ではのんびりとテレビや趣味など自分の時間を過ごしたいものです。

 

また、家族を持たれている方は子供と遊んだり、奥さんと一緒にコミュニケーションをとったりしてスキンシップをはかりたいでしょう。

 

多くの方は家に持ち帰ってまで仕事をしたくありません。

 

これからの時代、いかにして効率的に仕事をこなすかがより重要視されています。

 

今回は仕事で多く使われるエクセルの読み書きをプログラミング言語Pythonを使って、データの入力などの機械的な作業を自動化する事ができる記事内容となっております。

 

本記事を読み終える事で、エクセルにおける単純作業に多くの時間をかけることなく、自分がやるべき仕事に注力することが可能になるでしょう。

 

本記事は以下の方にオススメする内容になっております。

・エクセルの自動化(読み書き)を自動化したい方

・Pythonを学習していて、本業にも生かしたい方

・Macを使われている方

※本記事ではMacを使用されている方を想定して記事作成を行なっている為、Windowsをお持ちの方と少し作業内容が異なる事がありますので、予めご了承ください。

 


汎用性の広いPythonを0から習得するためのフロー及び実際にPythonで開発を行い開発案件を獲得するまでの筋道について解説しているチュートリアル資料と

コーディングの参考となる実際にPythonを使って作ったツールのソースコードを無料で配布していますので、こちらも併せてご覧ください。

初心者・入門者でも30日間で学習できるおすすめPython学習方法

 


おすすめのプログラミングスクールの比較・特徴をまとめた記事を執筆しております。

挫折することなく一直線にエンジニアを短期集中で目指している人はこちらから確認してください。

【比較表・無料体験あり】おすすめのプログラミングスクール3選!オンライン学習で完結!

 

Openpyxlをインストール

まず、Excelを自動化する前にやるべき事があります。

 

Pythonを使用して、Excelを操作するには必要なモジュールをインストールします。

 

それが、Openpyxlです。

 

こちらはPythonでExcelを作成・編集・読み込みができるモジュールになります。

 

ターミナルにて以下のコマンドを入力します。

pip install --upgrade pip
pip3 install openpyxl

 

モジュールがインストール確認を行うために、以下のコマンドを入力します。

 

エラーが発生しなければ、インストール完了です。

 python3
>>> import openpyxl
>>>

 

 

もし、ご自身のPCにてインストールしたモジュールのバージョンエラーなどにお困りの際は、仮想環境の構築をすることをオススメします。

 

仮想環境の構築方法が分からない方は下記の記事をご参照ください。

Pythonによる仮想環境の構築方法(Mac編)

 

LibreOfficeをインストール

「libreoffice 写真」の画像検索結果

次にLibreOfficeというアプリケーションをインストールします。

 

MacではExcelファイルを開くアプリケーションがありませんので、Pythonにてどんなに読み書きを自動化してもターミナル上でしか確認ができません。

 

折角なので、自分がどのようなコード、処理を行なったのか確認したいですよね。

 

こちらのアプリはMacにてExcelを表示させるためのアプリとなっております。

 

これにより、ターミナル上だけでなく、実際のExcelにて処理の確認ができるようになります。

 

下記のサイトにアクセスし、ダウンロードを行なってください。

LibreOfficeをダウンロード

 

Excelファイルの作成

準備が整ったところで、実際にコードの記述をしていきます。

 

まずは読み書きを行うExcelファイルが必要なので、ファイルの作成を行うコードを記述します。

import openpyxl as op

excelfile = op.Workbook()
excelfile.save('test.xlsx')

 

Excelファイルを新しく作成する場合、workbook( )にてインスタンスを作成します。

 

このままでは名前のないファイルが作成されただけで、Excelファイルと認識されません。

 

なので、save( )に作成したファイルの名前とExcelファイルと認識させるために拡張子(.xlsx)を引数に入力します。

 

これでExcelファイルが保存されました。

 

lsコマンドにてファイルの中身を確認すると、先ほど作成したファイルがターミナル上で確認できるかと思います。

 

ターミナル上だけでなく、実際にExcelファイルを開いて確認してみます。

 

先ほど作成されたExcelファイルまでディレクトリを移動し、右クリックにて開くを押します。

 

開くをクリックして、先ほど作成されたExcelファイルが表示されるかと思います。

 

 

確認はできたものの、まだ何も読み書きを行なっていないので、次の章にて実際に読み書きを行うコードを記述していきます。

 

Excelファイルに書き込み

それでは、最初に真っ白なExcelファイルに書き込みを行なっていきます。

 

以下がコードになります。

import openpyxl as op

excelfile = op.Workbook()
write = excelfile.active

#書き込み
write["A1"].value = "test"
write["B1"].value = "Python"


print(write["A1"].value)
print(write["B1"].value)
print(write["C1"].value)

excelfile.save("test.xlsx")

 

まず、Excelファイルを操作する際にはactiveメソッドを使って、シートを操作できるようにします。

 

次のコードにて書き込みを行なっているのですが、買い込む際には書く場所を指定した変数を用意し、文字列もしくは数値を入力します。

 

組み込み関数printでは読み込みではなく、実際にExcelファイルに書き込んだデータを出力するコードになっております。

 

こちらのコードをターミナルにて実行すると、以下の出力が返ってくるかと思います。

test
Python
None

 

writeA1とwriteB1にはそれぞれ書き込みを行なったため、文字列が出力さますが sheetC1には書き込みを行なっていないので、Noneと出力されました。

 

このように、書き込みを行なっていなくてもエラーが表示されるのではなく、Noneが返ってきます。

 

最後には書き込みを行なったExcelファイルを保存するコードになります。

 

ターミナル上だけでなく、LibreOfficeにて実際に書き込みが行われているのか確認を行なってみて下さい。

 

Excelファイルを読み込み

次に実際にデータを入力したコードを読み込んでみましょう。

 

以下が読み込みを行うコードになります。

import openpyxl as op
load = op.load_workbook('test.xlsx')
read = load.active

#行(column)と列(row)を指定
print(read.cell(column=1, row=1).value)
print(read['B1'].value)

#行から全て取得
for column in read.columns:
    print('----------------------------')
    for cell in column:
        print(cell.value)

#列から全て取得
for row in read.rows:
    print('----------------------------')
    for cell in row:
        print(cell.value)

 

今回は色々な読み込み方の処理コードを記載いたしました。

 

読み込みを行うためには、load_workbook関数を使って、引数に読み込みを行うExcelファイルの名前を指定します。

 

最初の読み込みを行うコードでは、予めどこから情報を取得するのか行と列を指定して出力を行なっております。

 

既に取得したい情報がどこにあるのか分かっている場合、こちらのやり方がいいかと思われます。

 

次のコードでは、for文を使って列もしく行に記載されている全ての情報を取得する場合に使われるやり方になります。

 

Excelファイルの情報が膨大かつ取得したい情報がどこにあるのか分からない場合に大変便利な手法になります。

 

ターミナルにて実行を行うと、以下のような結果が得られるかと思います。

test
Python
----------------------------
test
----------------------------
Python
----------------------------
test
Python

 

結果を見ると、どのようにして情報が取得されているのか視覚的に確認できます。

 

まとめ

いかがでしたでしょうか?

 

今回はプログラミング言語Pythonを使用した、Excelの読み書きを行いました。

 

今回は基礎的な部分しか記載していないので、物足りなかった方もいらっしゃるかと思いますので、本記事を通して「もっと色々な作業をしてみたい!」という方は以下の記事を参考に学習を行なってみて下さい。

 

Excelを操作

Python openpyxlでExcelを操作

 

是非、ご自身のお仕事に活かせるとことを切に願っております。

 

最後まで一読していただき、ありがとうございました!

 

 



ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、現在フリーランス活動中。 2019年2月から起業する予定。 自社サービス及び製品を開発し、売り上げを立てている。