LoginSignup
24
26

More than 5 years have passed since last update.

XlsxWriterでxlsxファイルを作る

Posted at

Pythonを使ってExcelファイル(拡張子xlsx)を作成できるモジュールです。Excel2007以降で登場したテーブルを生成したり、それぞれのセルプロパティをいじったり、割と本格的な帳票を作ることができます。
いろいろ事情があって最終的な出力形式はExcelじゃなければいけないけど、入力がとても面倒くさくとても普通にExcelなんか書いていられない なんて時にオススメ。

とりあえず、さわりだけ。

インストール

とりあえず、easyinstallでインストールができます。Windows環境下でもこれでOK

> easy_install xlsxwriter

基本的な使い方

まずはimport xlsxwriterしてモジュールをインポートします。
次に、ファイル名を指定してワークブックを作り、必要に応じてワークシートを何枚か挿入、処理が終わったらワークブックをクローズするとファイルができあがる感じです。

sample.py
import xlsxwriter

wb = xlsxwriter.Workbook('test.xlsx')
ws = wb.add_worksheet("シート名")

ws.write(0, 0, "テストテストテスト")
wb.close()

テーブルの作成

Excel2007以降で追加されたテーブルを作成することもできます。

sample.py

# 前略
  data = []
  headers = [
    { "header": "ヘッダ1"},
    { "header": "ヘッダ2"},
    { "header": "ヘッダ3"}]
  ws.add_table(0, 0, len(data) - 1, len(headers) - 1, {
    'data': data,
    'autofilter': True,
    'header_row': True, 
    'banded_rows': True, 
    'banded_columns': True,
    'first_column': True,
    'columns': headers
  })
# 後略

これでテーブルができあがります。いいですね。

テーブル列の書式を変更する

自分が試したのはとりあえず「折り返して全体を表示する」だけ。

set_text_wrap.py
# 前略
  format = workbook.add_format()
  format.set_text_wrap()
  ws.set_column(0, 0, 13)
  ws.set_column(1, 2, 13, format)
# 後略

set_column()の第一引数には、このフォーマットを使う最初の列の列番号、第二引数には、最後の列の列番号、第三引数は、列幅、最後にフォーマットを規定するオブジェクトを用意している場合は、第四引数にそれを指定します。

もっと詳しくは。

モジュールのページにいろいろ情報が掲載されています。
http://xlsxwriter.readthedocs.org/en/latest/
画面右下を見るとPDFやePUB形式のリファレンスを入手できるという力の入れようです。

24
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
26