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

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

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

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

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

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

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

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

なお、Pythonの記事については、こちらにまとめています。

目次

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ファイルを扱う方法についてはこちらのコードをご覧ください。

ちなみに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ファイルを扱う方法について忘れてしまった場合は、またぜひこの記事をご覧ください!

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次