okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

Python xlrdライブラリの基本的な使い方

Python xlrd ライブラリ完全ガイド

Pythonxlrd ライブラリは、Excel ファイル(.xls)の読み取り専用ライブラリです。主に旧形式の Excel(2003 以前)ファイルのデータ取得に使用されます。本記事では、xlrd の基本的な使い方と注意点を紹介します。

1. xlrd ライブラリの概要

  • .xlsExcel 97-2003)形式のファイル読み取り専用です。
  • .xlsx 形式には 2.0.0 以降のバージョンでは非対応。
  • 書き込み機能はなく、読み取りのみ可能です。

インストール方法

pip install xlrd==1.2.0

📌 xlsx を読みたい場合は openpyxl を使いましょう。


2. 主な機能と使用例

(1) Excel ファイル(.xls)の読み込み

import xlrd

book = xlrd.open_workbook("sample.xls")
sheet = book.sheet_by_index(0)
print(sheet.name)

(2) シート名の取得と選択

print(book.sheet_names())
sheet = book.sheet_by_name("Sheet1")

(3) セルの値を取得する

value = sheet.cell_value(rowx=0, colx=0)
print(value)

(4) 行・列のデータ取得

row = sheet.row_values(0)
col = sheet.col_values(1)
print(row)
print(col)

(5) シートの行数と列数を取得

print(sheet.nrows)
print(sheet.ncols)

(6) すべてのセルをループで取得

for row_idx in range(sheet.nrows):
    for col_idx in range(sheet.ncols):
        print(sheet.cell_value(row_idx, col_idx))

(7) データ型の確認(cell_type)

ctype = sheet.cell_type(0, 0)
print(ctype)  # 0=empty, 1=text, 2=number, etc.

(8) 日付データの扱い(xldate_as_tuple)

from datetime import datetime
from xlrd.xldate import xldate_as_tuple

date_value = sheet.cell_value(1, 2)
date_tuple = xldate_as_tuple(date_value, book.datemode)
date = datetime(*date_tuple)
print(date)

(9) エラー処理:ファイル形式確認

try:
    book = xlrd.open_workbook("data.xlsx")
except xlrd.biffh.XLRDError:
    print("xlsx形式には対応していません")

(10) ファイルが存在しない場合の対処

import os

filename = "sample.xls"
if os.path.exists(filename):
    book = xlrd.open_workbook(filename)
else:
    print("ファイルが見つかりません")

3. xlrd の主な機能まとめ

機能 説明
.xls ファイル対応 Excel 2003 形式専用の読み取りライブラリ
シートの読み取り インデックスまたは名前で取得可能
セルの操作 値取得、型取得、行・列の一括取得
日付データ対応 xldate_as_tuple で datetime に変換可能

まとめ

xlrd は古い Excel ファイル(.xls)のデータを扱う際に非常に便利です。現在では xlsx の読み込みには openpyxlpandas を使用することが推奨されますが、レガシーデータ対応には xlrd の知識も欠かせません!