pythonでエクセルを読み込む
- fulline
- 2016年6月3日
- 読了時間: 2分
前のメモでpythonによるエクセルの書き込みが出来るようになりました。
しかし、どちらかというとpythonでエクセルの利用機会は読み込みの方が多いと思います。
今回、エクセルの読み込みに用いるのは「xlrd」です。
読み込みについてはとてもシンプルで
1.エクセルファイル名を指定してopenする
2.指定したエクセルの読み込みたいシートを選択する
3.セルの値を読み込む
という流れです。
「xlwt」が使えるなら問題なく利用できると思います。
コード内の「cvt()」は、こちらを見てください。

シートの指定方法が2種類あるのはとても便利ですね。
・「全シートを読み込みたい」「シート名がわからない」等の場合:「sheet_by_index()」
・「シート名は分かるけど、何番目のシートかわからない」等の場合:「sheet_by_name()」
といった感じで使い分けれます。
また「row_values()」「col_values()」も行及び列ごとにリスト型で読み込んでくれます。
なので無駄なループ処理が必要なく、「あれ、行ごとでちゃんと格納されてる?列ごとになっちゃってるかも??」といったような事が起きないのでデータの処理がしやすくなりますね。
ただ、この方法で読み込むと空のセルも読み込んでしまうので、こんな感じになります。

書き込み時に同じ位置のセルに値を入れる場合はこのままで良いと思います。
空データが邪魔だという場合は、「filter(lambda s:s != '',sheet.col_values(1))」としてください。
シート内の全てのデータを読み込みたい時は、「nrows」でセルに値が入っている行数を確認できますので、「[sheet.row_values(i) for i in range(sheet.nrows)]」としてあげれば良いです。
Comments