我设法做到了import win32com.client

import os

Excel = win32com.client.gencache.EnsureDispatch('Excel.Application')

win32c = win32com.client.constants

wb = Excel.Workbooks.Add()

Sheet1 = wb.Worksheets.Add()

TestData = [['Country','Name','Gender','Sign','Amount'],

['CH','Max' ,'M','Plus',123.4567],

['CH','Max' ,'M','Minus',-23.4567],

['CH','Max' ,'M','Plus',12.2314],

['CH','Max' ,'M','Minus',-2.2314],

['CH','Sam' ,'M','Plus',453.7685],

['CH','Sam' ,'M','Minus',-53.7685],

['CH','Sara','F','Plus',777.666],

['CH','Sara','F','Minus',-77.666],

['DE','Hans','M','Plus',345.088],

['DE','Hans','M','Minus',-45.088],

['DE','Paul','M','Plus',222.455],

['DE','Paul','M','Minus',-22.455]]

for i, TestDataRow in enumerate(TestData):

for j, TestDataItem in enumerate(TestDataRow):

Sheet1.Cells(i+2,j+4).Value = TestDataItem

cl1 = Sheet1.Cells(2,4)

cl2 = Sheet1.Cells(2+len(TestData)-1,4+len(TestData[0])-1)

PivotSourceRange = Sheet1.Range(cl1,cl2)

PivotSourceRange.Select()

Sheet2 = wb.Worksheets.Add()

cl3=Sheet2.Cells(4,1)

PivotTargetRange= Sheet2.Range(cl3,cl3)

PivotTableName = 'ReportPivotTable'

PivotCache = wb.PivotCaches().Create(SourceType=win32c.xlDatabase,SourceData=PivotSourceRange, Version=win32c.xlPivotTableVersion14)

PivotTable = PivotCache.CreatePivotTable(TableDestination=PivotTargetRange, TableName=PivotTableName, DefaultVersion=win32c.xlPivotTableVersion14)

#Properties from a recorded macro I made, I didn't take the time to determine which attribute is really important and I don't think I will.

PivotTable.ColumnGrand = True

PivotTable.HasAutoFormat = True

PivotTable.DisplayErrorString = False

PivotTable.DisplayNullString = True

PivotTable.EnableDrilldown = True

PivotTable.ErrorString = ""

PivotTable.MergeLabels = False

PivotTable.NullString = ""

PivotTable.PageFieldOrder = 2

PivotTable.PageFieldWrapCount = 0

PivotTable.PreserveFormatting = True

PivotTable.RowGrand = True

PivotTable.SaveData = True

PivotTable.PrintTitles = False

PivotTable.RepeatItemsOnEachPrintedPage = True

PivotTable.TotalsAnnotation = False

PivotTable.CompactRowIndent = 1

PivotTable.InGridDropZones = False

PivotTable.DisplayFieldCaptions = True

PivotTable.DisplayMemberPropertyTooltips = False

PivotTable.DisplayContextTooltips = True

PivotTable.ShowDrillIndicators = True

PivotTable.PrintDrillIndicators = False

PivotTable.AllowMultipleFilters = False

PivotTable.SortUsingCustomLists = True

PivotTable.FieldListSortAscending = False

PivotTable.ShowValuesRow = False

PivotTable.CalculatedMembersInFilters = False

PivotTable.PivotFields('Name').Orientation = win32c.xlRowField

PivotTable.PivotFields('Name').Position = 1

PivotTable.PivotFields('Gender').Orientation = win32c.xlPageField

PivotTable.PivotFields('Gender').Position = 1

PivotTable.PivotFields('Gender').CurrentPage = 'M'

PivotTable.PivotFields('Country').Orientation = win32c.xlColumnField

PivotTable.PivotFields('Country').Position = 1

PivotTable.PivotFields('Country').Subtotals = [False, False, False, False, False, False, False, False, False, False, False, False]

PivotTable.PivotFields('Sign').Orientation = win32c.xlColumnField

PivotTable.PivotFields('Sign').Position = 2

DataField = PivotTable.AddDataField(PivotTable.PivotFields('Amount'))

DataField.NumberFormat = '#\'##0.00'

#Creating the PivotChart

chart=Sheet2.Shapes.AddChart2(201)

#to change XlChartType,cf.https://msdn.microsoft.com/fr-fr/vba/excelvba/articles/shapes-addchart2-method-excel

#For example, you can do chart=Sheet2.Shapes.AddChart2(201,4) for xlLine chart

Excel.Visible = 1

结果是:

希望这有帮助。在

问候

python数据透视_用pythonwin32com创建数据透视图相关推荐

  1. react 数据可视化_使用d3创建数据可视化并在2020年做出React

    react 数据可视化 Data visualisation and application technologies have evolved greatly over the past decad ...

  2. mysql如何进行数据透视_使用MySQL的数据透视表

    为了在MySQL中转动数据,您需要同时使用聚合函数和CASE表达式. 如果您有已知数量的列,则可以对查询进行硬编码: select p.postid, max(case when t.tagname ...

  3. 【Excle数据透视表】如何创建非共享缓存的数据透视表

    一般情况下,利用同一个数据源创建多个数据表时,默认创建的是共享缓存的数据透视表.刷新一个数据透视表时会影响其他数据透视表的展示结果. 解决方案 创建非共享缓存的多个数据透视表 步骤一 单击工作表数据任 ...

  4. C# 操作Excel数据透视表详解 – 创建、操作和删除

    数据透视表是Excel中可以进行数据分类汇总和分析的一个强大工具,很多报表形式都可以通过数据透视表来实现.它的一项重要功能是能够重新排列字段项,使用户可以从不同的角度对数据进行分析,并且无需进行复杂的 ...

  5. 多设备同步表数据_利用Excel数据透视表解决两份报表数据不同步问题

    19年元旦已经接近尾声啦,各位小伙伴们这个元旦假期过得快乐么,都去哪里玩了?屠夫的元旦假期一直都在加班,直到现在才有时间来分享Excel应用方面的一些经验和心得. 想必各位都有过这样的经历吧,人力资源 ...

  6. sql数据透视_SQL Server中的数据科学:取消数据透视

    sql数据透视 In this article, in the series, we'll discuss understanding and preparing data by using SQL ...

  7. Excel 数据透视表小技巧之 06 使用 Excel 数据透视表作为另一个数据透视表的数据源

    我在 excel 中有一个使用原始表作为其数据源的数据透视表.这个数据透视表正在对行进行一组分组和求和.我现在想使用这个新数据透视表的结果作为新数据透视表的数据源,它将进一步修改这些数据.这可以用ex ...

  8. Excel的数据透视表怎么弄 ?数据透视表怎么做汇总求和

    使用Excel进行求和,除了运用函数之外,还可以插入数据透视表进行求和,数据透视表怎么做呢?小编使用WPS里的Excel给大家演示一遍. 步骤一:打开需要求和的表格,点击最上方的工具栏里的" ...

  9. excel数据透视_取消透视Excel数据的快速方法

    excel数据透视 Before you can build a flexible pivot table, you might need to rearrange the data. For exa ...

最新文章

  1. 年增长率超50%,AI芯片竞争白热化
  2. codeforces 229C
  3. python redis集群_Python3 redis集群连接 (带密码验证)
  4. oracle client 默认端口,[数据库]配置精简版Oracle客户端
  5. 【NLP】NLP 语义匹配:经典前沿方案整理
  6. fileinput 加 ftp 加 nginx 加 SpringBoot上传文件
  7. kaggle账号_Kaggle 数据挖掘比赛经验分享
  8. Kubernetes的系统架构与设计理念
  9. HNOI2019 退役记
  10. json在java中的使用_有效地使用JSON流(在Java中)
  11. Windows可以往外ping,外部却ping不通本机
  12. 百旺智能编码_百旺税控盘如何增加商品编码?
  13. Spring Boot 整合定时任务,可以动态编辑的定时任务2022-03-09 11:27·java互联网架构
  14. snmptrap的使用方法
  15. 人脸图像质量评价:FaceQnet
  16. a20 linux qt,全志A83T开发板,超树莓派/A20/A31S/banana pi M3/八核/Android5
  17. 第17节 三个败家子(17)——少侠孙坚
  18. Vuex Actions使用
  19. 2010年RSA大会RSA总裁主题演讲:云的安全
  20. 【Linux/Unix】Linux中的seq命令

热门文章

  1. 锦州财经学校有学计算机的部门儿吗,锦州市招收的学校有哪些
  2. Git怎样撤销一次分支的合并Merge
  3. tensor的维度(轴)—axis的解释
  4. 表格对角线两边打字_WPS表格怎么在斜线左右两边打字|excle表格斜线一分为二怎么打字...
  5. python学习②21 7 14
  6. Python问题:SyntaxError: Non-ASCII character '\xe2'
  7. es6——let和const
  8. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一3.3 在VIPLE中创建计算机系统部件...
  9. 计算机用户来源分析,中国PC用户购买渠道调查报告前期准备用户篇
  10. 趣图:IT培训出来找工作