Excel読み込み (xlrd) | Python-izm

Excel読み込み (xlrd)

excel-pythonライブラリではExcelファイルの読み込みxlrdパッケージを用います。
※ここではxlsx形式のファイルを読み込んでいますが、xls形式のファイルも読み込むことができます。

xlrdのインストール

下記コマンドを入力しxlrdをインストールしてください。
※これはpipがインストールされていることを前提としています。インストールしていない場合はpipの使い方とインストールを参照してください。

pip install xlrd

ブックのオープン

まずはExcelブックの開いてみましょう。Excelであればどのようなファイルでも構いませんが、例で使用しているファイルは下記リンクよりダウンロード出来ます。

test_book.xlsx

import xlrd

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

xlrdモジュールをインポート後、open_workbookを使用してブックを開きます。引数にはファイル名を指定しましょう。

シート数・シート名の取得

ブック内のシート数と全シート名を出力してみましょう。

import xlrd

book = xlrd.open_workbook('test_book.xlsx')
print('--------------------------------')
print(book.nsheets)

print('--------------------------------')
for name in book.sheet_names():
    print(name)
--------------------------------
3
--------------------------------
テストシート1
テストシート2
テストシート3

5行目のnsheetsでシート数を取得出来ます。8行目sheet_namesはブック内の全シート名の取得が可能です。

指定のシートを取得

ブック内のインデックスで特定のシートを取得する場合はsheet_by_index、シート名で取得する場合はsheet_by_nameを使用します。

import xlrd

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

print(book.sheet_by_index(0).name)
print(book.sheet_by_name('テストシート3').name)
テストシート1
テストシート3

ブック内から取得したシート名を出力しています。

シート内の列数・行数取得

特定のシート内に存在する列数と行数を取得します。

import xlrd

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

sheet_1 = book.sheet_by_index(0)
print(sheet_1.ncols)
print(sheet_1.nrows)
3
10

ncolsで列数、nrowsで行数を取得出来ます。

セル値の取得

シート内のセル値を取得するには、cellの引数に行と列を渡します。

import xlrd

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

sheet_1 = book.sheet_by_index(0)
for col in range(sheet_1.ncols):
    print('----------------------------')
    for row in range(sheet_1.nrows):
        print(sheet_1.cell(row, col).value)
----------------------------
テストセルA1
テストセルA2
テストセルA3
テストセルA4
テストセルA5
テストセルA6
テストセルA7
テストセルA8
テストセルA9
テストセルA10
----------------------------
テストセルB1

~中略~

テストセルC9
テストセルC10

テストシート1内の全セル値を出力しています。