okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

xlwt ライブラリの基本的な使い方と書式設定

Python xlwt ライブラリ完全ガイド

Pythonxlwt ライブラリは、Excel 2003 形式(.xls)のファイルを書き込むための専用ライブラリです。openpyxl.xlsx に対応しているのに対し、xlwt.xls を対象としています。本記事では xlwt の基本的な使い方と書式設定の方法などを紹介します。

1. xlwt ライブラリの概要

  • .xlsExcel 97-2003)形式のファイル出力に特化。
  • セルへの文字列、数値、日付、スタイルの書き込みが可能。
  • 読み込みは非対応(読み込みには xlrd を使用)。
  • .xlsxExcel 2007 以降)形式には対応していません。

インストール方法

pip install xlwt

2. 主な機能と使用例

(1) 新しい Excel ファイルの作成と保存

import xlwt

wb = xlwt.Workbook()
ws = wb.add_sheet("Sheet1")
ws.write(0, 0, "こんにちは")
wb.save("output.xls")

(2) 数値や日付の書き込み

import datetime

ws.write(1, 0, 123.45)
ws.write(2, 0, datetime.datetime.now().strftime("%Y-%m-%d"))

(3) フォントのスタイル変更(太字・色)

style = xlwt.easyxf('font: bold 1, color red;')
ws.write(3, 0, "太字の赤文字", style)

(4) 列幅の調整

ws.col(0).width = 256 * 20  # 20文字分の幅に設定

(5) 行の高さの調整

ws.row(0).height_mismatch = True
ws.row(0).height = 20 * 20  # 高さを設定(20pt)

(6) セルの罫線設定

borders = xlwt.Borders()
borders.left = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN

style = xlwt.XFStyle()
style.borders = borders
ws.write(4, 0, "罫線付きセル", style)

(7) 複数シートの作成

sheet2 = wb.add_sheet("分析")
sheet2.write(0, 0, "分析用データ")

(8) 書式を複数適用(結合スタイル)

style = xlwt.easyxf('font: bold 1; pattern: pattern solid, fore_color yellow;')
ws.write(5, 0, "強調表示", style)

(9) 数値書式(通貨・小数点)

style = xlwt.XFStyle()
style.num_format_str = '#,##0.00'
ws.write(6, 0, 1234567.89, style)

(10) 保存してファイルを閉じる

wb.save("styled_output.xls")

3. xlwt の主な機能まとめ

機能 説明
.xls 出力対応 Excel 2003 形式の書き込み専用ライブラリ
セル書き込み 文字列、数値、日付、スタイルの書き込み
書式設定 フォント、罫線、背景色、数値フォーマットなど
複数シート 複数のシートを1つのブックに追加可能

まとめ

xlwt はレガシー Excel ファイルへの書き込みに最適なライブラリです。現在では .xlsx 形式の利用が主流ですが、旧システムとの連携やレガシーファイルの自動出力には xlwt の知識が役立ちます!