无法在使用win32COM python库创建的PIVOT表中插入caluclated字段。

问题描述 投票:0回答:1

我试图在使用win32com python库创建的PIVOT表中插入一个计算字段。但是当我执行我的代码时,excel给了我一个错误的信息"数据透视表公式不支持引用、名称和数组。"

import win32com.client
Excel = win32com.client.gencache.EnsureDispatch('Excel.Application')
win32c = win32com.client.constants
Wb = Excel.Workbooks.Open('MyWorkbook')
Excel.Visible = True
Ws = Wb.Sheets('PR Jan20')

Wb.Sheets.Add()
Wb.ActiveSheet.Name = 'PivotSheet'
WsP = Wb.Sheets('PivotSheet')

MaxR = Ws.UsedRange.Rows.Count
MaxC = Ws.UsedRange.Columns.Count
C1 = Ws.Cells(1,1)
C2 = Ws.Cells(MaxR, MaxC)
PivotSourceRange = Ws.Range(C1,C2)

PCache = Wb.PivotCaches().Create(SourceType=win32c.xlDatabase, SourceData=PivotSourceRange,Version=win32c.xlPivotTableVersion14)
PTable = PCache.CreatePivotTable(TableDestination=WsP.Range('B2'), TableName='RegisterPivot', DefaultVersion=win32c.xlPivotTableVersion14)

PTable.PivotFields('Party').Orientation = win32c.xlRowField
PTable.PivotFields('Party').Position = 1
PTable.AddDataField(PTable.PivotFields('Gross Kgs'))
PTable.AddDataField(PTable.PivotFields('Amount (RS.)'))
#till above this line code is working fine

#this below line is causing issue
PTable.CalculatedFields().Add('Average Purchase Rate', '= Amount (RS.) / Gross Kgs')

'Excel错误'

python excel vba win32com
1个回答
0
投票

我已经设法解决了上述问题。问题出在列名 "Amount (RS.) "上,我把列名重命名为 "Amount",然后一切正常。我认为VBA对Pivot字段名中的()括号不适应。

© www.soinside.com 2019 - 2024. All rights reserved.