[我正在尝试使用从其他名为“ Reports.xlsx”的工作簿中的dataRange创建的PivotCache在名为“ Model.xlsx”的工作簿中创建数据透视表
[当我在从其创建dataRange的同一工作簿(Reports.xlsx)中创建数据透视表时,数据透视表已成功创建,但是当我尝试在其他工作簿中创建数据透视表时,出现错误“发生异常”
我的代码太长,这就是为什么我不共享它,因为它可能会使读者感到困惑。我希望我已经充分阐述了这个问题。
[使用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