Excel の テーブル機能 を用いると、列ごとの自動フィルターやデザインの統一、構造化参照による関数の簡略化など、多くのメリットが得られます。Python の openpyxl では Table クラスと TableStyleInfo クラスを組み合わせることで、ブック生成時にテーブルを自動設定できます。本記事では、見やすさと集計効率を向上させるテーブル作成手順を解説いたします。
動作環境
| 項目 | 内容 |
|---|---|
| Python | 3.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 種前後のスタイルを指定可能 |
showRowStripes | True / False | 行の背景色を交互表示 |
showColumnStripes | True / False | 列の背景色を交互表示 |
showFirstColumn | True / False | 最左列を太字・着色で強調 |
showLastColumn | True / False | 最右列を太字・着色で強調 |
テーブル機能の主な利点
- 自動フィルターと並べ替え
列見出しにフィルターボタンが自動追加され、範囲指定なしで絞り込みが可能です。 - 構造化参照
=SUM(SalesTbl[Amount])のように列名で計算式を記述でき、シート構成変更時の修正コストを低減できます。 - 行追加時の書式継承
データを最終行の下へ入力すると自動でテーブル範囲が拡張され、色・罫線も維持されます。 - ピボットテーブル作成が容易
ソース範囲が動的に拡張されるため、ピボットテーブル更新時に範囲を再指定する手間が省けます。
応用アイデア
| 目的 | 実装ヒント |
|---|---|
| データ更新ごとにテーブル範囲を再計算 | ws.max_row と ws.max_column を使い ref を自動生成 |
| 色覚多様性に配慮した配色を採用 | TableStyleLight 系スタイルを指定し、彩度を抑える |
| テーブルを複数シートへ自動配置 | ループでシートを回し、add_table() を連続適用 |
まとめ
Table×TableStyleInfoを用いると、Excel のテーブル機能を Python から再現できます。- 行・列の縞模様や最左列強調など、視認性を高めるオプション はプロパティで簡単に切り替え可能です。
- テーブル化により フィルター・集計・書式維持 など多くのメリットが得られるため、月次レポートやデータ集計シートの自動生成にお勧めです。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
