【Python入門】xlrdでExcelのファイルを読み込もう

この記事ではPythonでExcelのファイルを操作する方法について解説をしたいと思います。

xlrdというパッケージを使えば簡単にExcelのブックやシートを操作することが出来ます。

PythonでExcelファイルを操作したい。
CSVファイルに変換せずに扱いたい。

今回の記事ではこのように思っている方に向けて、

【基礎】ExcelファイルとCSVファイル
【基礎】xlrdとは
【実践】Excelファイルを読み込む方法

について解説をしていきます。

PythonでExcelファイルを扱ってみましょう!

ExcelファイルとCSVファイル

Excelファイルとよく比べられるファイル形式にCSVファイルがあります。

CSVファイルはComma-Separated Valuesの略で、カンマで区切られた値が入ったファイルになります。

このCSVファイルを扱いやすいようにセルを装飾したりシートなどの概念を追加したものがExcelファイルになります。

またExcelファイルにも2種類あり、Excel2003まで使われていた.xls形式と、Excel2007から現在も使われている.xlsx形式があります。

大きな特徴としては扱える行と列の数が多くなったことくらいなので、あまり気にする必要はありません。

ただし、.xlsx形式は2003以前のExcelで開くことが出来ないので気をつけましょう。

xlrdとは

PythonでExcelのファイルを扱うためにはxlrdというパッケージを使う必要があります。

xlrdではExcelのファイルを直接、そのまま読み込むことが出来ます。

CSVファイルであれば標準パッケージのcsvを使えばよいのですが、xlrdはpipを使ってインストールする必要があります。

こちらのコマンドを使ってインストールしておきましょう。

pip install xlrd

また、CSVファイルを扱う方法についてはこちらのコードをご覧ください。

PythonでCSVファイルの読み込み・書き込み方法を解説
更新日 : 2019年5月22日

ちなみにExcelファイルを読み込むことができるxlrdの他にも、Excelファイルに書き込むことができるxlwtというパッケージもあります。

Excelファイルを読み込む方法

それでは早速Excelファイルを読み込んでみましょう。

ちなみにこれからは、このようなExcelのファイルをサンプルに読み込んでみます。

test_xlrd

Excelのブックをオープンする

まずはExcelのブックをオープンしましょう。

ExcelではExcelファイルのことをブックと呼び、さらにそのブックに分かれて入っているデータをシートと呼びます。

こちらのコードをご覧ください。

import xlrd

book = xlrd.open_workbook('test_xlrd.xlsx')

まずはxlrdパッケージをimportしましょう。

次に、open_workbook関数の引数にExcelファイルのパスを渡してファイルをオープンします。

ちなみにxlrdは.xlsファイルも、.xlsxファイルも扱うことが出来ます。

シートの情報を取得する

次にシートの情報を取得してみましょう。

こちらのコードをご覧ください。

import xlrd
 
book = xlrd.open_workbook('test_xlrd.xlsx')

# シートの数
print("Sheet num: ", end='')
print(book.nsheets)

# すべてのシートの名前
for sname in book.sheet_names():
    print("Sheet name: ", end='')
    print(sname)

# 指定したシートの名前
print("index: " + book.sheet_by_index(0).name) # インデックス(0〜)で指定
print("name: " + book.sheet_by_name('sheet2').name) # 名前で指定

実行結果

Sheet num: 3
Sheet name: sheet1
Sheet name: sheet2
Sheet name: sheet3
index: sheet1
name: sheet2

ここではシートの数と名前を取得しています。

名前はインデックスと名前で取得するものを指定することが出来ます。

CSVファイルにはシートという概念が無くファイルが増えがちですが、Excelファイルで読み込むことでファイルも扱いやすくなりますね。

セルの情報を取得する

それでは次にセルの情報を取得してみましょう。

こちらのコードをご覧ください。

import xlrd
 
book = xlrd.open_workbook('test_xlrd.xlsx')
 
s1 = book.sheet_by_index(0)

# 行と列を取得
print("sheet1 cols: " + str(s1.ncols))
print("sheet1 rows: " + str(s1.nrows))

# sheet1のB3を取得
print("sheet1,B3: ",s1.cell(2,1).value)

実行結果

sheet1 cols: 3
sheet1 rows: 5
sheet1,B3: B3

このコードでは行と列の大きさと特定のセルの値を取得しています。

特定のセルの値を取得するためには、cell関数にそのセルの位置を渡します。

まとめ

この記事ではPythonでExcelファイルを扱う方法について解説をしてきました。

Excelファイルの読み込みの方法については分かっていただけたでしょうか?

基本的にはCSVを使うほうが一般的ですがxlrdでExcelファイルを直接読み込む方法を知っておいても損はありません。

もしExcelファイルを扱う方法について忘れてしまった場合は、またぜひこの記事をご覧ください!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

侍テック編集部

侍テック編集部