Невозможно вставить вычисленное поле в PIVOT TABLE, созданный с помощью библиотеки win32COM python - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь вставить вычисляемое поле в PIVOT TABLE, созданную с помощью библиотеки win32com python. Но когда я выполняю свой код, 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'

1 Ответ

0 голосов
/ 30 апреля 2020

Мне удалось решить вышеуказанную проблему. Проблема была с именем столбца «Сумма (RS.)», Я переименовал столбец в «Сумма», и все работало нормально. Я думаю, что VBA не устраивает скобка () в имени поля сводки.

...