PythonでExcel操作:xlrdとxlwtで読み書きの基本をマスター
PythonでExcelファイル(.xls形式)を操作する必要がある場合、xlrdライブラリとxlwtライブラリが非常に役立ちます。xlrdはExcelファイルの読み込みに特化しており、xlwtはExcelファイルの書き込みに特化しています。これらはシンプルながらも強力な機能を提供し、データ処理の自動化に貢献します。
この記事では、xlrdとxlwtの基本的な使い方を、それぞれ短いサンプルコードを交えて解説します。データ分析、レポート作成、設定ファイルの管理など、Excelファイルを扱う様々な場面で役立つでしょう。
xlrdとxlwtとは?なぜ使うのか?
xlrdとxlwtは、PythonでExcelファイル(.xls形式、Excel 2003までのバイナリ形式)をプログラム的に操作するためのライブラリです。
なぜこれらのライブラリを使うのか?
-
シンプルさ: 比較的シンプルで直感的なAPIを提供します。
-
軽量性: 複雑な機能は少ないですが、読み書きの基本的なニーズを満たします。
-
.xls形式への対応: 古い形式のExcelファイル(.xls)を扱う場合に特に有効です。
注意点: これらのライブラリは、新しいExcelファイル形式(.xlsx)には直接対応していません。.xlsxファイルを扱う場合は、openpyxlなどの別のライブラリを使用する必要があります](https://www.google.com/search?q=https://openpyxl.readthedocs.io/en/stable/)%E3%81%AA%E3%81%A9%E3%81%AE%E5%88%A5%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99)。
インストール方法
使用する前に、pipコマンドでインストールが必要です。
pip install xlrd xlwt
Excelファイルを読み込む:xlrdの使い方
xlrdライブラリを使ってExcelファイル(.xls)からデータを読み込む方法を学びましょう。
ワークブックを開き、シートを選択する
まず、Excelファイル(ワークブック)を開き、データを読み込みたいワークシートを選択します。
import xlrd
# 読み込むExcelファイル名(.xls形式)
file_name = "sample_data.xls"
# --- テスト用にExcelファイルを仮作成(xlwtを使用) ---
import xlwt
book_temp = xlwt.Workbook(encoding="utf-8")
sheet_temp = book_temp.add_sheet("Sheet1")
sheet_temp.write(0, 0, "名前")
sheet_temp.write(0, 1, "年齢")
sheet_temp.write(1, 0, "Alice")
sheet_temp.write(1, 1, 30)
sheet_temp.write(2, 0, "Bob")
sheet_temp.write(2, 1, 25)
book_temp.save(file_name)
print(f"'{file_name}' をテスト用に作成しました。\n")
# ----------------------------------------------------
try:
# ワークブックを開く
book = xlrd.open_workbook(file_name)
# シートをインデックスで選択(0は最初のシート)
sheet = book.sheet_by_index(0)
# シートを名前で選択
# sheet = book.sheet_by_name("Sheet1")
print(f"シート名: {sheet.name}")
print(f"行数: {sheet.nrows}")
print(f"列数: {sheet.ncols}")
except FileNotFoundError:
print(f"エラー: ファイル '{file_name}' が見つかりません。")
# 出力例:
# シート名: Sheet1
# 行数: 3
# 列数: 2
セルのデータを読み込む
シートから個々のセルのデータを読み取ります。
import xlrd
file_name = "sample_data.xls" # 上記で作成したファイルを使用
try:
book = xlrd.open_workbook(file_name)
sheet = book.sheet_by_index(0)
# 特定のセルの値を取得 (row_index, col_index)
cell_value_0_0 = sheet.cell_value(0, 0) # 0行0列目
cell_value_1_1 = sheet.cell_value(1, 1) # 1行1列目
print(f"セル (0,0) の値: {cell_value_0_0}")
print(f"セル (1,1) の値: {cell_value_1_1}")
# 全てのデータをループで読み込み
print("\n--- シート全体のデータ ---")
for row_idx in range(sheet.nrows):
for col_idx in range(sheet.ncols):
cell_value = sheet.cell_value(row_idx, col_idx)
print(f"({row_idx},{col_idx}): {cell_value}", end="\t")
print() # 改行
except FileNotFoundError:
print(f"エラー: ファイル '{file_name}' が見つかりません。")
# 出力例:
# セル (0,0) の値: 名前
# セル (1,1) の値: 30.0
# --- シート全体のデータ ---
# (0,0): 名前 (0,1): 年齢
# (1,0): Alice (1,1): 30.0
# (2,0): Bob (2,1): 25.0
-
sheet.nrowsとsheet.ncolsは、それぞれシートの有効な行数と列数を返します。 -
cell_value(row_index, col_index)でセルの値を取得できます。数値は浮動小数点数として読み込まれる点に注意してください。
Excelファイルを書き込む:xlwtの使い方
xlwtライブラリを使って新しいExcelファイル(.xls)を作成し、データを書き込む方法を学びましょう。
ワークブックとシートを作成する
まず、新しいワークブックを作成し、その中にワークシートを追加します。
import xlwt
# 新しいワークブックを作成
book = xlwt.Workbook(encoding="utf-8") # 文字コードを指定
# シートを追加
sheet1 = book.add_sheet("データシート")
sheet2 = book.add_sheet("集計結果")
print(f"ワークブックにシートを2つ追加しました。")
セルにデータを書き込む
作成したシートの指定したセルにデータを書き込みます。
import xlwt
output_file_name = "output_report.xls"
book = xlwt.Workbook(encoding="utf-8")
sheet = book.add_sheet("売上データ")
# セルにデータを書き込む (row_index, col_index, value)
sheet.write(0, 0, "商品名")
sheet.write(0, 1, "売上高")
sheet.write(0, 2, "利益")
sheet.write(1, 0, "A商品")
sheet.write(1, 1, 10000)
sheet.write(1, 2, 3000)
sheet.write(2, 0, "B商品")
sheet.write(2, 1, 8000)
sheet.write(2, 2, 2500)
# スタイルを適用することも可能(例: 太字)
style = xlwt.XFStyle()
font = xlwt.Font()
font.bold = True
style.font = font
sheet.write(0, 0, "商品名", style) # 0行0列目を太字で書き換え
# ワークブックを保存
book.save(output_file_name)
print(f"'{output_file_name}' にExcelファイルを書き込みました。")
# 出力後、output_report.xlsが作成されていることを確認してください
-
sheet.write(row_index, col_index, value)でセルに値を書き込みます。 -
数値、文字列、日付など、様々なデータ型を書き込むことができます。
-
スタイル(フォント、色、罫線など)も
xlwt.XFStyleを使って設定し、writeメソッドの3つ目の引数として渡すことで適用できます。
まとめと活用例
Pythonのxlrdとxlwtライブラリを使うことで、Excelファイル(.xls形式)の読み込みと書き込みを効率的に行うことができます。
-
xlrd: 既存の.xlsファイルからデータを抽出したい場合に最適です。-
例: 毎日の売上データが入力されたExcelファイルから、特定の期間のデータを読み取り、集計する。
-
例: 設定値が記述されたExcelファイルから、プログラムが必要とするパラメータを読み込む。
-
-
xlwt: 新しい.xlsファイルを作成し、データを書き出したい場合に最適です。-
例: データベースから抽出したデータを、レポート用のExcelファイルとして出力する。
-
例: シミュレーション結果や計算結果を、分かりやすい表形式でExcelに書き出す。
-
これらのライブラリは、古い.xls形式を扱う際には非常に便利ですが、もし.xlsx形式のファイルを操作する必要がある場合は、openpyxlなどのより新しいライブラリの利用を検討してください。Excel操作の自動化を通じて、あなたのPythonプロジェクトの幅を広げましょう!
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座

