При использовании COM сводные таблицы необходимо создавать «в Excel, Excel». Я использовал xlwings (который по своей сути является оболочкой COM). Идея состоит в том, чтобы создать сводный кеш и использовать его для создания сводной таблицы.
import xlwings as xw
from xlwings import constants
wb = xw.Book.caller()
pivot_table = xw.sheets.add(name='Pivot Table', after='Sheet1')
PivotTableName = 'ReportPivotTable'
PivotCache = wb.api.PivotCaches().Create(SourceType=constants.PivotTableSourceType.xlDatabase, SourceData=PivotSourceRange.api, Version=constants.PivotTableVersionList.xlPivotTableVersion14)
PivotTable = PivotCache.CreatePivotTable(TableDestination="'Pivot Table'!R1C1", TableName=PivotTableName, DefaultVersion=constants.PivotTableVersionList.xlPivotTableVersion14)
PivotTable.PivotFields('Last Name').Orientation = constants.PivotFieldOrientation.xlRowField
PivotTable.PivotFields('Last Name').Position = 1
PivotTable.PivotFields('Project Code').Orientation = constants.PivotFieldOrientation.xlRowField
PivotTable.PivotFields('Project Code').Position = 2
PivotTable.PivotFields("total").Orientation = constants.PivotFieldOrientation.xlDataField
Когда я делал это, я обнаружил, что справка Microsoft для сводных таблиц неоценима.