0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでExcelにテーブルを作成しスタイルを適用する

0
Posted at

現代の企業オフィスにおいて、Excelテーブルはデータの処理と表示の中核ツールです。売上データの統計から財務報告書の作成、プロジェクト進捗の追跡まで、構造化されたテーブルはデータの可読性を高めるだけでなく、レポートをより専門的に見せることができます。しかし、大量のデータを扱ったり定期的なレポートを生成する必要がある場合、手動でテーブルを作成しスタイルを設定することは時間がかかり、エラーも発生しやすくなります。一方、Pythonは強力なドキュメント処理能力を持っており、プログラミングによるExcelテーブルの自動化作成とスタイル適用は、データの正確性を保証しながら、作業効率を大幅に向上させることができます。

本文では、**Free Spire.XLS for Python**を使用して、Excelでテーブル(ListObject)を作成し、様々な内蔵テーブルスタイルを適用する方法を紹介します。ライト、ミディアム、ダークの各スタイルシリーズに加え、テーブルの集計行、行ストライプ、列ストライプなどの高度な機能の設定方法も解説します。実際の業務シナリオのデータ例を組み合わせて、Excelテーブル自動化スキルを迅速に習得できるようにします。


1. 環境準備とライブラリのインストール

まず、Free Spire.XLS for Pythonをインストールする必要があります:

pip install spire.xls.free

インストールが完了したら、Excelワークブックを作成し、データを準備できます。以下はExcelファイルを作成する簡単な例です:

from spire.xls import Workbook

# 新しいワークブックを作成
workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "従業員データ"

# 初期ファイルを保存
workbook.SaveToFile("EmployeeData.xlsx")
workbook.Dispose()
print("Excelファイルを作成しました:EmployeeData.xlsx")

説明
WorkbookオブジェクトはExcelファイル全体を表し、Worksheets[0]は最初のワークシートを取得します。ここでは「従業員データ」という名前のワークシートを作成し、データの書き込みとテーブル作成の準備を整えます。

注意:新しく作成したExcelワークブックには3つのデフォルトワークシート(Sheet1、Sheet2、Sheet3)があり、必要に応じて直接読み取り・編集するか、クリアして再作成できます。


2. Excelに業務データを書き込む

従業員情報レポートを準備していると仮定し、従業員番号、氏名、部署、役職、給与などの情報を含めます。コードでデータを直接生成できます:

from spire.xls import Workbook

workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Name = "従業員データ"

# ヘッダーを書き込む
headers = ["従業員番号", "氏名", "部署", "役職", "給与"]
for col, header in enumerate(headers, start=1):
    sheet.Range[1, col].Text = header

# サンプルデータを書き込む
employee_data = [
    ["E001", "田中 太郎", "営業部", "営業マネージャー", 15000],
    ["E002", "鈴木 次郎", "営業部", "営業担当", 8000],
    ["E003", "佐藤 三郎", "技術部", "技術ディレクター", 25000],
    ["E004", "高橋 四郎", "技術部", "ソフトウェアエンジニア", 12000],
    ["E005", "伊藤 五郎", "財務部", "財務マネージャー", 18000],
    ["E006", "渡辺 六郎", "財務部", "会計士", 9000],
    ["E007", "山本 七郎", "人事部", "人事マネージャー", 16000],
    ["E008", "中村 八郎", "人事部", "採用担当", 7500],
]

for row, data in enumerate(employee_data, start=2):
    for col, value in enumerate(data, start=1):
        if isinstance(value, str):
            sheet.Range[row, col].Value = value
        else:
            sheet.Range[row, col].NumberValue = value

# 列幅を自動調整
sheet.Range.AutoFitColumns()

workbook.SaveToFile("EmployeeData.xlsx")
workbook.Dispose()
print("業務データをExcelファイルに書き込みました")

ワークシートプレビュー:

PythonでExcelに従業員データを書き込む

説明
ここでは8名の従業員の人事情報をシミュレートし、異なる部署と役職を含み、実際の業務シナリオに近づけ、意味のあるテーブルを作成できるようにしています。


3. 基本テーブルを作成しライトスタイルを適用する

テーブル(ListObject)はExcelでデータを管理・フォーマットするための強力なツールです。データ範囲をテーブルに変換し、内蔵スタイルを適用できます:

from spire.xls import Workbook, TableBuiltInStyles

workbook = Workbook()
workbook.LoadFromFile("EmployeeData.xlsx")
sheet = workbook.Worksheets[0]

# テーブル(ListObject)を作成し、データ範囲を指定
sheet.ListObjects.Create("従業員情報テーブル", sheet.Range[1, 1, 9, 5])

# ライトスタイルを適用
sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleLight9

workbook.SaveToFile("EmployeeTable_Light.xlsx")
workbook.Dispose()
print("基本テーブルを作成し、ライトスタイルを適用しました")

ワークシートプレビュー:

PythonでExcelテーブルを作成しライトスタイルを適用する

説明

  • sheet.ListObjects.Create()メソッドは新しいテーブルオブジェクトを作成します。最初のパラメータはテーブル名、2番目のパラメータはデータ範囲です。
  • TableBuiltInStyles.TableStyleLight9はExcel内蔵のライトスタイルの一つで、シンプルなテーブル表示に適しています。
  • テーブルは自動的にフィルターボタンを追加し、データのフィルタリングとソートを容易にします。

4. ミディアムスタイルを適用しテーブルオプションを設定する

ミディアムスタイルシリーズはより豊富な色とフォーマットオプションを提供し、テーブル機能と組み合わせてより詳細な設定ができます:

from spire.xls import Workbook, TableBuiltInStyles

workbook = Workbook()
workbook.LoadFromFile("EmployeeData.xlsx")
sheet = workbook.Worksheets[0]

# テーブルを作成
sheet.ListObjects.Create("従業員情報テーブル", sheet.Range[1, 1, 9, 5])

# ミディアムスタイルを適用
sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleMedium9

# 行ストライプを表示(1行おきに色を変更)
sheet.ListObjects[0].ShowTableStyleRowStripes = True

# 列ストライプを表示
sheet.ListObjects[0].ShowTableStyleColumnStripes = True

workbook.SaveToFile("EmployeeTable_Medium.xlsx")
workbook.Dispose()
print("テーブルを作成し、ミディアムスタイルとストライプ設定を適用しました")

説明

  • TableBuiltInStyles.TableStyleMedium9はより目立つ色のスキームを提供し、データを強調する必要があるシーンに適しています。
  • ShowTableStyleRowStripesShowTableStyleColumnStripesプロパティは行と列のストライプ表示を制御し、テーブルの可読性を向上させます。
  • ストライプスタイルは自動的に1行おきまたは1列おきに異なる背景色を適用し、データを読みやすくします。

5. ダークスタイルを適用し集計行を設定する

ダークスタイルシリーズはより強力な視覚効果を提供し、重要なデータを強調する必要があるシーンに適しています。同時に、テーブルの集計行機能を設定できます:

from spire.xls import Workbook, TableBuiltInStyles, ExcelTotalsCalculation

workbook = Workbook()
workbook.LoadFromFile("EmployeeData.xlsx")
sheet = workbook.Worksheets[0]

# テーブルを作成
sheet.ListObjects.Create("従業員情報テーブル", sheet.Range[1, 1, 9, 5])

# ダークスタイルを適用
sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleDark9

# 集計行を表示
sheet.ListObjects[0].DisplayTotalRow = True

# 集計行のラベルを設定
sheet.ListObjects[0].Columns[0].TotalsRowLabel = "合計"

# 各列の計算方法を設定
sheet.ListObjects[0].Columns[1].TotalsCalculation = ExcelTotalsCalculation.none  # 氏名列は計算なし
sheet.ListObjects[0].Columns[2].TotalsCalculation = ExcelTotalsCalculation.none  # 部署列は計算なし
sheet.ListObjects[0].Columns[3].TotalsCalculation = ExcelTotalsCalculation.none  # 役職列は計算なし
sheet.ListObjects[0].Columns[4].TotalsCalculation = ExcelTotalsCalculation.Sum   # 給与列は合計

workbook.SaveToFile("EmployeeTable_Dark.xlsx")
workbook.Dispose()
print("テーブルを作成し、ダークスタイルと集計行を適用しました")

説明

  • TableBuiltInStyles.TableStyleDark9はダーク背景を提供し、データを強調する必要があるシーンに適しています。
  • DisplayTotalRowプロパティは集計行の表示を制御します。
  • TotalsRowLabelは最初の列の集計行ラベルテキストを設定します。
  • TotalsCalculation列挙値は各列の計算方法を制御し、Sum(合計)、Average(平均)、Count(カウント)などが含まれます。
  • 集計行は自動的に数値列の合計を計算し、データ分析作業を大幅に簡素化します。

6. フィルター機能付きテーブルを作成する

テーブルのフィルター機能はExcelテーブルの重要な特性の一つであり、コードで自動的に有効にできます:

from spire.xls import Workbook, TableBuiltInStyles

workbook = Workbook()
workbook.LoadFromFile("EmployeeData.xlsx")
sheet = workbook.Worksheets[0]

# テーブルを作成し、動的範囲を使用
sheet.ListObjects.Create("従業員情報テーブル", sheet.Range[1, 1, sheet.LastRow, sheet.LastColumn])

# スタイルを適用
sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleLight11

# テーブルはデフォルトでフィルター機能が有効になり、追加の設定は不要

workbook.SaveToFile("EmployeeTable_Filter.xlsx")
workbook.Dispose()
print("フィルター機能付きテーブルを作成しました")

説明

  • sheet.LastRowsheet.LastColumnを使用すると、データの実際の範囲を動的に取得でき、データ量が不確定なシーンに適しています。
  • テーブルを作成すると、ヘッダーに自動的にフィルタードロップダウンボタンが追加され、ユーザーはクリックしてデータをフィルタリングできます。
  • フィルター機能により、データ管理と分析がより便利になり、特に大規模なデータセットに適しています。

7. 重要なクラス、メソッド、プロパティのまとめ

前の章では、Free Spire.XLS for Pythonを使用してテーブルを作成し、様々なスタイルを適用する方法を紹介しました。技術的な実装の観点から、テーブル作成とスタイル設定のコアプロセスは以下の重要なステップに要約できます。

Python Excelテーブル作成ステップのまとめ

  1. データを準備する
    業務データをExcelワークシートに書き込みます。データはヘッダーとデータ行を含み、フォーマットが標準化され、テーブルに変換しやすいようにします。

  2. テーブルオブジェクトを作成する
    sheet.ListObjects.Create()メソッドを使用してテーブルオブジェクトを作成し、テーブル名とデータ範囲を指定します。

  3. テーブルスタイルを適用する
    BuiltInTableStyleプロパティを使用して内蔵スタイルを選択し、ライト、ミディアム、ダークの3つのシリーズを含みます。

  4. テーブルオプションを設定する
    ShowTableStyleRowStripesShowTableStyleColumnStripesDisplayTotalRowなどのプロパティを設定し、テーブルの外観と機能をカスタマイズします。

  5. 集計行を設定する
    TotalsRowLabelTotalsCalculationプロパティを使用して、集計行のラベルと計算方法を設定します。

  6. ファイルを保存する
    workbook.SaveToFile()を使用して、生成されたテーブルを指定したファイルに保存します。

重要なクラス、メソッド、プロパティ

クラス / メソッド / プロパティ 説明
Workbook Excelワークブックオブジェクト、ファイルの作成、読み込み、保存をサポート
Workbook.LoadFromFile() ローカルファイルからExcelワークブックを読み込む
Workbook.SaveToFile() Excelファイルを指定したパスに保存
Worksheet 単一のワークシートを表し、データとテーブル操作の主体オブジェクト
sheet.ListObjects.Create() ワークシートに新しいテーブル(ListObject)オブジェクトを作成
sheet.ListObjects[0] ワークシートの最初のテーブルオブジェクトを取得
ListObject.BuiltInTableStyle テーブルの内蔵スタイルを設定
TableBuiltInStyles 列挙クラス、すべての内蔵テーブルスタイルオプションを提供
ListObject.ShowTableStyleRowStripes 行ストライプを表示するかどうかを制御
ListObject.ShowTableStyleColumnStripes 列ストライプを表示するかどうかを制御
ListObject.DisplayTotalRow 集計行を表示するかどうかを制御
ListObject.Columns[].TotalsRowLabel 指定した列の集計行ラベルテキストを設定
ListObject.Columns[].TotalsCalculation 指定した列の集計行計算方法を設定
ExcelTotalsCalculation 列挙クラス、集計行計算オプション(Sum、Average、Countなど)を提供
sheet.LastRow ワークシートの最後の行の行番号を取得
sheet.LastColumn ワークシートの最後の列の列番号を取得

内蔵テーブルスタイルシリーズ

Free Spire.XLS for Pythonは3つの主要な内蔵テーブルスタイルシリーズを提供します:

スタイルシリーズ 特徴 適用シーン
Lightシリーズ ライトな背景、シンプルで清潔 日常レポート、データリスト
Mediumシリーズ 中程度の色、バランスの取れた美しさ 業務分析、管理レポート
Darkシリーズ ダークな背景、重要なデータを強調 プレゼンテーション、重要なデータ表示

各シリーズには複数のスタイルオプション(TableStyleLight1からTableStyleLight21など)が含まれており、実際のニーズに応じて最適なスタイルを選択できます。

これらの重要なクラス、メソッド、プロパティを理解することで、様々なタイプのテーブルを柔軟に作成し、業務ニーズに応じて詳細にカスタマイズできます。これらの技術的詳細を習得することで、実際のプロジェクトで高品質で可読性の高いExcelレポートを迅速に生成し、コードを簡潔で保守性の高い状態に保つことができます。


まとめ

本文では、実際の業務データを例として、Free Spire.XLS for Pythonを使用してExcelでテーブルを作成し、様々なスタイルを適用する方法を紹介しました。ライト、ミディアム、ダークの各スタイルシリーズに加え、テーブルの集計行、行ストライプ、列ストライプ、フィルター機能の設定方法も解説しました。プログラミングによるテーブルの作成とフォーマットは、手動操作の煩雑さとエラーの問題を回避するだけでなく、バッチレポートと複雑なデータ管理ニーズにも簡単に対応できます。

このスキルを習得することで、データレポートの生成を完全に自動化し、時間を節約し、効率を向上させ、データ分析と意思決定に信頼できるサポートを提供できます。Free Spire.XLSの他の機能(条件付き書式、データ検証、チャート操作など)と組み合わせることで、さらにインテリジェントなExcel自動化ワークフローを作成し、企業のデータ価値を最大化できます。PythonによるExcel操作の詳細については、Spire.XLS for Python公式チュートリアルを参照してください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?