Excel読み込み (xlrd)
excel-pythonライブラリではExcelファイルの読み込みにxlrdパッケージを使用します。
まずはExcelブックの開いてみましょう。Excelであればどのようなファイルでも構いませんが、サンプルコードで使用しているファイルは下記リンクよりダウンロード出来ます。
#! c:/Python26/python.exe
# -*- coding: utf-8 -*-
import xlrd
if __name__ == "__main__":
book = xlrd.open_workbook('test_book.xls')
「xlrd」モジュールをインポート後、「open_workbook」関数を使用してブックを開きます。
引数にはファイル名を指定しましょう。
ブック内のシート数と全シート名を出力してみましょう。
#! c:/Python26/python.exe
# -*- coding: utf-8 -*-
import xlrd
if __name__ == "__main__":
book = xlrd.open_workbook('test_book.xls')
print "--------------------------------"
print book.nsheets
print "--------------------------------"
for name in book.sheet_names():
print name
--実行結果--
-------------------------------- 3 -------------------------------- テストシート1 テストシート2 テストシート3
10行目の「nsheets」にてシート数を取得出来ます。13行目「sheet_names」関数はブック内の全シート名の取得が可能です。
ブック内のインデックスで特定のシートを取得する場合は「sheet_by_index」、シート名で取得する場合は「sheet_by_name」を使用します。
#! c:/Python26/python.exe
# -*- coding: utf-8 -*-
import xlrd
if __name__ == "__main__":
book = xlrd.open_workbook('test_book.xls')
print book.sheet_by_index(0).name
print book.sheet_by_name(u"テストシート3").name
--実行結果--
テストシート1 テストシート3
ブック内から取得したシート名を出力しています。
特定のシート内に存在する列数と行数を取得します。
#! c:/Python26/python.exe
# -*- coding: utf-8 -*-
import xlrd
if __name__ == "__main__":
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」関数の引数に行と列を渡します。
#! c:/Python26/python.exe
# -*- coding: utf-8 -*-
import xlrd
if __name__ == "__main__":
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書き込み








![みんなのPython Webアプリ編 [みんなのシリーズ]](http://ecx.images-amazon.com/images/I/418rHjXqbUL._SL160_.jpg)


