Я написал код для построения сводной таблицы с Python, как показано ниже. Когда я запускаю код на локальном компьютере, он работает успешно, но когда я запускаю его на сервере. Я получаю все единицы вместо счета. Но тот же код отлично работает на локальной машине. На обеих машинах используется одна и та же версия Spyder. 32-разрядная версия Excel 2016 365 используется на локальном компьютере, а 64-разрядная версия Excel 2016 Professional - на сервере. В чем может быть проблема. В чем может быть ценность xlpivottableversion для Excel 2016? Я рассматривал версию 14 для локальной, и она сработала.
Excel = win32com.client.gencache.EnsureDispatch('Excel.Application')
win32c = win32com.client.constants
wb1 = Excel.Workbooks.Open('excel.xlsx')
ws1 = wb1.Worksheets('Sheet1')
cl1 = ws1.Cells(9,2)
cl2 = ws1.Cells(1000,3)
PivotSourceRange = ws1.Range(cl1,cl2)
ws1.Activate()
PivotSourceRange.Select()
cl3 = ws1.Cells(9,2)
PivotTargetRange = ws1.Range(cl3,cl3)
PivotTableName = 'Pivot'
#Make Pivot Table
PivotCache = wb1.PivotCaches().Create(SourceType=win32c.xlDatabase, SourceData=PivotSourceRange, Version=win32c.xlPivotTableVersion14)
PivotTable = PivotCache.CreatePivotTable(TableDestination=PivotTargetRange, TableName=PivotTableName, DefaultVersion=win32c.xlPivotTableVersion14)
PivotTable.PivotFields('EventDate').Orientation = win32c.xlRowField
PivotTable.PivotFields('EventDate').Position = 1
DataField = PivotTable.AddDataField(PivotTable.PivotFields('Alarm_Backlog'))
chart=ws1.Shapes.AddChart2(201, 51, 300, 100)
wb1.Save()
wb1.Close()
введите здесь описание изображения