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ワークシートにピボットテーブルを作成する

Posted at

データ処理や分析において、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オブジェクトを基にピボットテーブルを作成します。作成後、行フィールド、列フィールド、値フィールドなどを設定して、完成したピボットテーブルを構築します。以下に手順の例を示します:

  1. 必要なクラス(WorkbookAxisTypesPivotBuiltInStylesSubtotalTypesPivotAutoFormatTypes)をインポートします。
  2. Workbookクラスのインスタンスを作成します。
  3. Workbook.LoadFromFileメソッドを使用して、指定したパスの既存のExcelファイルをワークブックインスタンスにロードします。
  4. Workbook.Worksheets.get_Itemメソッドを使用して、ワークブック内のワークシートを取得します。
  5. データソース範囲を定義します:Worksheet.Range.get_Itemメソッドを使用してセル範囲を選択します。
  6. Workbook.PivotCaches.Addメソッドを使用して、データソース範囲をワークブックのキャッシュに追加し、XlsPivotCacheオブジェクトを作成します。
  7. 現在のワークシート内の位置を定義し、Worksheet.PivotTables.Addメソッドおよび作成したXlsPivotCacheオブジェクトを使用してピボットテーブルを作成します(他のワークシートに作成することも可能です)。
  8. ピボットテーブルに行フィールドを追加します:XlsPivotTable.PivotFields.get_Itemメソッドで列を選択し、その軸タイプを行に設定します。
  9. 列フィールドを追加します:同様にXlsPivotTable.PivotFields.get_Itemメソッドで列を選択し、その軸タイプを列に設定します。
  10. 値フィールドを追加します:合計を求めたいデータ列を選択し、XlsPivotTable.DataFields.Addメソッドでピボットテーブルに追加します。
  11. XlsPivotCache.CalculateData()メソッドを使用して、ピボットテーブルの値を更新します。
  12. XlsPivotTable.BuiltInStyleプロパティを使用して、組み込みスタイルを適用します。
  13. XlsPivotTable.AutoFormatTypeプロパティを使用して、ピボットテーブルの自動フォーマットタイプを設定します。
  14. Workbook.SaveToFileメソッドを使用して、変更を加えたワークブックを指定したパスに保存します。
  15. リソースを解放します。

コード例

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ワークシートにピボットテーブルを作成

この記事では、Pythonを使用してExcelワークシートにピボットテーブルを作成する方法を説明し、操作の詳細やコード例を提供します。

無料ライセンス申請

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?