【Python x Excel】 めんどくさいExcel作業を自動化しよう!基本操作編

2018年4月4日

▼プログラミングスキルへを身に着けて独立しよう!▼


f:id:kichie_com:20180404162258j:plain
こんにちは、きちえです。

めんどくさいExcel作業単調なExcel仕事ってありませんか?

結構あるんですよね。

そんな単純作業はPythonに任せてしまって仕事を早く終わらせよう!というのが今回の記事です。

この記事を読むと…
  • PythonでExcelの扱い方がわかる
  • 実際のコードを書いて動かせる
  • 仕事の能率かが図れる

自動化するための前準備

プログラミングをする際は、前準備としてライブラリのダウンロードやどういう環境で行うかを確認する必要性がありますので、確認していきます!

今回実行した環境

一応下記に実行環境を残しておきますね!

エラーが出た時にも確認してください!

Python 3.6.3
Mac OS 10.13.3
pipインストール済

必要なライブラリ

今回使用するライブラリは「openpyxl」です。

使ったことない方は以下のコードをターミナルでうってインストールしてください。


pip install openpyxl

今回使用するデータのダウンロード

これからxlsxデータを扱うので以下のデータを元に説明していきます。

以下からテストデータを公開しておきますので、ダウンロードをしてください。

内容は、以下の画像になっています!

データダウンロード:
https://drive.google.com/open?id=130Otxp9lVs5hwUqw6JrNRET107Bf7cBA

データ内容:
f:id:kichie_com:20180404144348p:plain


openpyxlの使い方

では実際に使っていきましょう。

各々でmain.pyと名前をつけてPythonのファイルを作成しましょう。

モジュールを使えるようにインポート

openpyxlモジュールをpxという名前で使用できるようにインポートします。

import openpyxl as px

xlsxファイルの読み込み

main.pyと同じ階層のdataフォルダの中にあるエクセルファイルを読み込みます。

(先ほどのexcelファイルをダウンロードした際に、dataフォルダを作成してその中にダウンロードしました)

import openpyxl as px
wb = px.load_workbook("data/data.xlsx")

ファイル構造は以下の様です。

xlsxファイルのシートネームを読み込む

import openpyxl as px
wb = px.load_workbook("data/data.xlsx")
#1番最初のシートを読み込む
sheetName = wb.sheetnames[0]
print("■読み込みシート名: "+sheetName)
# 出力結果->■読み込みシート名: Sheet1

xlsxファイルのシートネームをもとにシートを読み込む

import openpyxl as px
wb = px.load_workbook("data/data.xlsx")
#1番最初のシートを読み込む
sheetName = wb.sheetnames[0]
print("■読み込みシート名: "+sheetName)
sheet = wb[sheetName]

xlsxではこのシートを元にセルから値を持ってきたり書き込んだりします。

セルの値を読み込む

以下の画像のB1のセルの「パイソン商店」という文字列を取りたいと思います。
f:id:kichie_com:20180404144348p:plain

import openpyxl as px
wb = px.load_workbook("data/data.xlsx")
#1番最初のシートを読み込む
sheetName = wb.sheetnames[0]
print("■読み込みシート名: "+sheetName)
sheet = wb[sheetName]
cell = sheet["B1"].value
print("■店舗名: " + cell)
# 出力結果 -> ■店舗名: パイソン商店

この様にセルを読み込むことによって、値を集計したり、配置し直すことができます。

では読み込めたので、次に値を変更して保存していきましょう。

セルの値を書き込む

import openpyxl as px
wb = px.load_workbook("data/data.xlsx")
#1番最初のシートを読み込む
sheetName = wb.sheetnames[0]
print("■読み込みシート名: "+sheetName)
sheet = wb[sheetName]
#値を書き換えて
sheet["B1"].value = "パイソン薬局"
#データを保存
wb.save("data/data.xlsx")

そうするとこの様に書き変わります。
f:id:kichie_com:20180404145634p:plain

ここまでで基本操作ができる様になりました!

今回はここまでです!
次回は実際に多くのデータを書き換えてプログラムのすごさを実感しましょう!

楽して仕事をしたい方向けの本の紹介

このようなエクセルなどなるべく楽して仕事をこなしたい方には以下の本がオススメです。

タイトルの通り、様々なPythonの使い方が載っています。

私もこの本は何回も読み返していて、「仕事が早いね」とよく言われるようになったので、ぜひオススメしたい1冊です。

相変わらずオライリーはでかいので、電子書籍の方がいつでも読めるのでおすすめです。

もっと実践的なプログラミングスキルをつけたい方はTECH::CAMPで!無料体験!

質問もすぐにできて、効率よく勉強できるノウハウがあるから時間のないあなたにおすすめ! 公式サイトはこちらから