Excel読み込み (xlrd)
excel-pythonライブラリではExcelファイルの読み込みにxlrdパッケージを使用します。
まずはExcelブックの開いてみましょう。 Excelであればどのようなファイルでも構いませんが、サンプルコードで使用しているファイルは下記リンクよりダウンロード出来ます。
# -*- coding: utf-8 -*-
import xlrd
book = xlrd.open_workbook('test_book.xls')
「xlrd」モジュールをインポート後、「open_workbook」を使用してブックを開きます。 引数にはファイル名を指定しましょう。
ブック内のシート数と全シート名を出力してみましょう。
# -*- coding: utf-8 -*-
import xlrd
book = xlrd.open_workbook('test_book.xls')
print '--------------------------------'
print book.nsheets
print '--------------------------------'
for name in book.sheet_names():
print name
--実行結果--
-------------------------------- 3 -------------------------------- テストシート1 テストシート2 テストシート3
7行目の「nsheets」でシート数を取得出来ます。10行目「sheet_names」はブック内の全シート名の取得が可能です。
ブック内のインデックスで特定のシートを取得する場合は「sheet_by_index」、シート名で取得する場合は「sheet_by_name」を使用します。
# -*- coding: utf-8 -*-
import xlrd
book = xlrd.open_workbook('test_book.xls')
print book.sheet_by_index(0).name
print book.sheet_by_name(u'テストシート3').name
--実行結果--
テストシート1 テストシート3
ブック内から取得したシート名を出力しています。
特定のシート内に存在する列数と行数を取得します。
# -*- coding: utf-8 -*-
import xlrd
book = xlrd.open_workbook('test_book.xls')
sheet_1 = book.sheet_by_index(0)
print sheet_1.ncols
print sheet_1.nrows
--実行結果--
3 10
「ncols」で列数、「nrows」で行数を取得出来ます。
シート内のセル値を取得するには、「cell」の引数に行と列を渡します。
# -*- coding: utf-8 -*-
import xlrd
book = xlrd.open_workbook('test_book.xls')
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 テストセルB2 テストセルB3 テストセルB4 テストセルB5 テストセルB6 テストセルB7 テストセルB8 テストセルB9 テストセルB10 ---------------------------- テストセルC1 テストセルC2 テストセルC3 テストセルC4 テストセルC5 テストセルC6 テストセルC7 テストセルC8 テストセルC9 テストセルC10
テストシート1内の全セル値を出力しています。
読み込みの次は書き込み!
▶外部ライブラリ:Excel書き込み
