データ処理や分析において、Excelは広く使われているツールであり、データの管理や解析に強力な機能を提供します。大量かつ複雑なデータセットに直面した際、データを効率的に要約、分析、可視化するために、ピボットテーブルの作成が欠かせません。Pythonのようなプログラミング言語をExcelワークシートと組み合わせて使用することで、ピボットテーブルの生成プロセスを自動化し、時間を節約すると同時に、一貫性と正確性を確保できます。この記事では、PythonでExcelワークシートにピボットテーブルを作成する方法を紹介します。
この記事で使用する方法では、Spire.XLS for Pythonが必要です。PyPIからインストールしてください:pip install spire.xls
PythonでExcelワークシートにピボットテーブルを作成する
Excelワークシートにピボットテーブルを作成するには、まず指定されたセル範囲をWorkbook.PivotCaches.Add(CellRange)
メソッドで追加してXlsPivotCache
オブジェクトを生成します。その後、Worksheet.PivotTables.Add(name: string, location: CellRange, XlsPivotCache)
メソッドを使用して、このXlsPivotCache
オブジェクトを基にピボットテーブルを作成します。作成後、行フィールド、列フィールド、値フィールドなどを設定して、完成したピボットテーブルを構築します。以下に手順の例を示します:
- 必要なクラス(
Workbook
、AxisTypes
、PivotBuiltInStyles
、SubtotalTypes
、PivotAutoFormatTypes
)をインポートします。 -
Workbook
クラスのインスタンスを作成します。 -
Workbook.LoadFromFile
メソッドを使用して、指定したパスの既存のExcelファイルをワークブックインスタンスにロードします。 -
Workbook.Worksheets.get_Item
メソッドを使用して、ワークブック内のワークシートを取得します。 - データソース範囲を定義します:
Worksheet.Range.get_Item
メソッドを使用してセル範囲を選択します。 -
Workbook.PivotCaches.Add
メソッドを使用して、データソース範囲をワークブックのキャッシュに追加し、XlsPivotCache
オブジェクトを作成します。 - 現在のワークシート内の位置を定義し、
Worksheet.PivotTables.Add
メソッドおよび作成したXlsPivotCache
オブジェクトを使用してピボットテーブルを作成します(他のワークシートに作成することも可能です)。 - ピボットテーブルに行フィールドを追加します:
XlsPivotTable.PivotFields.get_Item
メソッドで列を選択し、その軸タイプを行に設定します。 - 列フィールドを追加します:同様に
XlsPivotTable.PivotFields.get_Item
メソッドで列を選択し、その軸タイプを列に設定します。 - 値フィールドを追加します:合計を求めたいデータ列を選択し、
XlsPivotTable.DataFields.Add
メソッドでピボットテーブルに追加します。 -
XlsPivotCache.CalculateData()
メソッドを使用して、ピボットテーブルの値を更新します。 -
XlsPivotTable.BuiltInStyle
プロパティを使用して、組み込みスタイルを適用します。 -
XlsPivotTable.AutoFormatType
プロパティを使用して、ピボットテーブルの自動フォーマットタイプを設定します。 -
Workbook.SaveToFile
メソッドを使用して、変更を加えたワークブックを指定したパスに保存します。 - リソースを解放します。
コード例
from spire.xls import Workbook, AxisTypes, PivotBuiltInStyles, SubtotalTypes, PivotAutoFomatTypes
# Workbookインスタンスを作成
workbook = Workbook()
# Excelファイルを読み込む
workbook.LoadFromFile("Sample.xlsx")
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# データソースのセル範囲を取得
dataRange = sheet.Range.get_Item("A1:E119")
# データソースを使用してXlsPivotCacheオブジェクトを作成
pivotCache = workbook.PivotCaches.Add(dataRange)
# 現在のワークシートにXlsPivotCacheオブジェクトを使ってピボットテーブルを作成
pivotTable = sheet.PivotTables.Add("販売分析", sheet.Range.get_Item("G2"), pivotCache)
# 新しいワークシートにXlsPivotCacheオブジェクトを使ってピボットテーブルを作成(コメントアウト)
#sheet2 = workbook.Worksheets.Add("販売分析")
#pivotTable2 = sheet.PivotTables.Add("販売分析", sheet.Range.get_Item("A1"), pivotCache)
# 行フィールドを追加
rowField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("C1").Value)
rowField1.Axis = AxisTypes.Row
rowField2 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("D1").Value)
rowField2.Axis = AxisTypes.Row
# 列フィールドを追加
columnField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("B1").Value)
columnField1.Axis = AxisTypes.Column
# 値フィールドを追加
dataField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("E1").Value)
pivotTable.DataFields.Add(dataField1, "合計項目:" + sheet.Range.get_Item("E1").Value, SubtotalTypes.Sum)
# データを計算
pivotTable.CalculateData()
# ピボットテーブルのスタイルを設定
pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleLight2
# ピボットテーブルの自動フォーマットを設定
pivotTable.AutoFormatType = PivotAutoFomatTypes.Table2
# ワークブックを保存
workbook.SaveToFile("output/Excelピボットテーブル.xlsx")
workbook.Dispose()
この記事では、Pythonを使用してExcelワークシートにピボットテーブルを作成する方法を説明し、操作の詳細やコード例を提供します。