excel-pythonライブラリではExcelファイルの読み込みにxlrdパッケージを用います。
※ここではxlsx形式のファイルを読み込んでいますが、xls形式のファイルも読み込むことができます。
xlrdのインストール
下記コマンドを入力しxlrdをインストールしてください。
※これはpipがインストールされていることを前提としています。インストールしていない場合はpipの使い方とインストールを参照してください。
pip install xlrd
ブックのオープン
まずはExcelブックの開いてみましょう。Excelであればどのようなファイルでも構いませんが、例で使用しているファイルは下記リンクよりダウンロード出来ます。
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内の全セル値を出力しています。