PythonでExcelを読み込む(xlrd)

たくさんのExcelファイルから、それぞれのあるセルにあるデータを取り出してくる必要ができました。
VBAとかでやるのが筋なのかもしれませんが、Pythonで気軽にできないか調べてみることに。


以前PyExceleratorというライブラリがあったことを思い出して調べてみると、
最近は更新が停止されていて、xlrd, xlwtというライブラリを使うのが良いみたい。


公式サイトのPython Excelにpdfでまとめられたチュートリアルがあります。
かなり詳細に書いてあるので、わかりやすいです。
これを参考にインストールからやってみます。

概要

Excelを操作するパッケージとして以下の3つが用意されています。

  • xlrd
  • xlwt
  • xlutils

xlrdが読み込み操作、xlwtが書き込み、xlutilsが既にあるExcelファイルをいじるなどのユーティリティを集めたものだそうです。
今回はxlrdのみ使います。
結構いろいろなことができるようですが、とりあえず今必要なセルの中身を読み込む操作だけやってみます。

インストール

easy_installを使って簡単にインストールできます。

easy_install xlrd

で完了です。

セルの読みだし

簡単なので、サンプルをちょっと改良するだけでできます。
わかりやすくて使いやすいですね。

import xlrd

# open_workbook関数でファイルから読み込みます。
wb = xlrd.open_workbook('test.xls')

# シートの情報を取得。
# wb.sheets()の返り値はシートの情報の入ったリスト
sheets = wb.sheets()

# シート1を使う
s = sheets[0]

# セルのオブジェクトを取得
c = s.cell(3, 2)

# セルのオブジェクトを操作して情報を取得
print c.value

こんな感じで簡単に読みだせました。