openpyxl でテーブル機能を活用し、集計しやすい表を作成する方法

Excel の テーブル機能 を用いると、列ごとの自動フィルターやデザインの統一、構造化参照による関数の簡略化など、多くのメリットが得られます。Python の openpyxl では Table クラスと TableStyleInfo クラスを組み合わせることで、ブック生成時にテーブルを自動設定できます。本記事では、見やすさと集計効率を向上させるテーブル作成手順を解説いたします。


目次

動作環境

項目内容
Python3.10 以上
ライブラリopenpyxl (pip install openpyxl)
入力ファイル例sales_data.xlsx
出力ファイル例sales_data_table.xlsx

サンプルコード

from openpyxl import load_workbook
from openpyxl.worksheet.table import Table, TableStyleInfo

# 1. ワークブックとシートを取得
wb = load_workbook('sales_data.xlsx')
ws = wb.active

# 2. テーブル範囲と表示名を設定
tbl = Table(
    displayName='SalesTbl',   # テーブル名(英字 + 数字先頭不可)
    ref='C3:H20'              # 見出し行を含む範囲
)

# 3. テーブルスタイルを作成
style = TableStyleInfo(
    name='TableStyleMedium4', # 既定スタイル名(Medium 系は配色バランス良好)
    showRowStripes=True,      # 行ごとに縞模様
    showColumnStripes=False,  # 列の縞模様は無効
    showFirstColumn=True,     # 最左列を強調(太字 + 色)
    showLastColumn=False      # 最右列は通常表示
)

tbl.tableStyleInfo = style

# 4. シートへテーブルを追加
ws.add_table(tbl)

# 5. 保存
wb.save('sales_data_table.xlsx')

パラメータ解説

パラメータ設定値効果
displayName'SalesTbl'テーブル名。英数字・アンダースコアのみ使用可能
ref'C3:H20'見出し行を含む範囲(行列番号で指定)
name(スタイル名)'TableStyleMedium4'Excel 既定 60 種前後のスタイルを指定可能
showRowStripesTrue / False行の背景色を交互表示
showColumnStripesTrue / False列の背景色を交互表示
showFirstColumnTrue / False最左列を太字・着色で強調
showLastColumnTrue / False最右列を太字・着色で強調

テーブル機能の主な利点

  1. 自動フィルターと並べ替え
    列見出しにフィルターボタンが自動追加され、範囲指定なしで絞り込みが可能です。
  2. 構造化参照
    =SUM(SalesTbl[Amount]) のように列名で計算式を記述でき、シート構成変更時の修正コストを低減できます。
  3. 行追加時の書式継承
    データを最終行の下へ入力すると自動でテーブル範囲が拡張され、色・罫線も維持されます。
  4. ピボットテーブル作成が容易
    ソース範囲が動的に拡張されるため、ピボットテーブル更新時に範囲を再指定する手間が省けます。

応用アイデア

目的実装ヒント
データ更新ごとにテーブル範囲を再計算ws.max_rowws.max_column を使い ref を自動生成
色覚多様性に配慮した配色を採用TableStyleLight 系スタイルを指定し、彩度を抑える
テーブルを複数シートへ自動配置ループでシートを回し、add_table() を連続適用

まとめ

  • Table × TableStyleInfo を用いると、Excel のテーブル機能を Python から再現できます。
  • 行・列の縞模様や最左列強調など、視認性を高めるオプション はプロパティで簡単に切り替え可能です。
  • テーブル化により フィルター・集計・書式維持 など多くのメリットが得られるため、月次レポートやデータ集計シートの自動生成にお勧めです。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次