在日常处理中或许会用到数据透视表的功能,但发现对于使用win32com来做数据透视表的介绍有点少。

接下来就是介绍利用win32com进行数据表创建

这也是一个查找的资料的例子,只是稍作了修改,使得可以相对自由地设置参数。

其实主要的是addpivot函数,使用到的一些字段等,以及统计的一些相应的字段,

import win32com.client as win32
win32c = win32.constants
import sys
import itertools
tablecount = itertools.count(1)def addpivot(wb,sourcedata,title,filters=(),columns=(),rows=(),sumvalue=(),sortfield=""):newsheet = wb.Sheets.Add()newsheet.Cells(1,1).Value = titlenewsheet.Cells(1,1).Font.Size = 16print(tablecount)tname = "PivotTable%d"%1pc = wb.PivotCaches().Add(SourceType=win32c.xlDatabase,SourceData=sourcedata)#pt = pc.CreatePivotTable(TableDestination="%s!R4C1"%newsheet.Name,TableName=tname,DefaultVersion=win32c.xlPivotTableVersion10)for fieldlist,fieldc in ((filters,win32c.xlPageField),(columns,win32c.xlColumnField),(rows,win32c.xlRowField)):for i,val in enumerate(fieldlist):print(i,val,fieldlist,fieldc)wb.ActiveSheet.PivotTables(tname).PivotFields(val).Orientation = fieldcwb.ActiveSheet.PivotTables(tname).PivotFields(val).Position = i+1for value in sumvalue:print(value)wb.ActiveSheet.PivotTables(tname).AddDataField(wb.ActiveSheet.PivotTables(tname).PivotFields(value[0]),Function = value[1])
#         wb.ActiveSheet.PivotTables(tname).AddDataField(wb.ActiveSheet.PivotTables(tname).
#                                          PivotFields(sumvalue))#通过激活表的方式去使用api接口调用数据透视表。#在使用这种方法前需要新建一个xls文件在当前目录下,名为18.03.14.xls
#当然还需要新建一张表为defaulters,表上还需有相对应的字段名name,Name等,当然这只是测试
#其他的测试条件可以自行添加。
def runexcel():
#     excel = win32.gencache.EnsureDispatch('Excel.Application')excel = win32.Dispatch("Excel.Application")#excel.Visible = Truetry:wb = excel.Workbooks.Open('18.03.14.xls')except:import tracebackprint(traceback.format_exc())print("Failed to open spreadsheet 18.03.14.xls")sys.exit(1)ws = wb.Sheets('defaulters')xldata = ws.UsedRange.Valueprint(xldata)newdata = []for row in xldata:if len(row) == 4 and row[-1] is not None:newdata.append(list(row))rowcnt = len(newdata)colcnt = len(newdata[0])wsnew = wb.Sheets.Add()#新建sheetwsnew.Range(wsnew.Cells(1,1),wsnew.Cells(rowcnt,colcnt)).Value = newdata#使用range的变量wsnew.Columns.AutoFit()src = "%s!R1C1:R%dC%d"%(wsnew.Name,rowcnt,colcnt)print('src:%s'%src)addpivot(wb,src,title="Employees by leads",filters=("Leads",),columns=("one",),rows=("Name",),sumvalue=(("Actual hours",win32c.xlAverage),("one",win32c.xlSum)),sortfield=())#创建数据透视表if int(float(excel.Version)) >= 12:wb.SaveAs('new18.03.14.xlsx',win32c.xlOpenXMLWorkbook)else:wb.SaveAs('new18.03.14.xls')excel.Application.Quit()if __name__ == "__main__":runexcel()

这是作为笔记的存在。

python 利用win32com进行数据透视表绘制相关推荐

  1. 利用 Sql 实现数据透视表功能

    讲过很多次,数据分组和数据透视表很像,Sql 中的数据分组大家应该都很熟悉了,用的就是 group by.数据透视表是作为一个数据分析师最基本,也是使用频率最高的一个功能了,我们可以把明细数据从数据库 ...

  2. python多个sheet数据透视表_python创建excel数据透视表(基于win32com)

    excel的数据透视表可以帮助我们快速统计数据,排版.比自己开发脚本,要快捷很多.对指定的区域的数据创建透视表 import win32com.client as win32 from win32co ...

  3. python多个sheet数据透视表_python 用pandas实现数据透视表功能

    透视表是一种可以对数据动态排布并且分类汇总的表格格式.对于熟练使用 excel 的伙伴来说,一定很是亲切! pd.pivot_table() 语法: pivot_table(data, # dataf ...

  4. python实现excel数据透视表_用python建立excel的数据透视表

    import pandas as pd import numpy as np #1.建立一维数据 a = pd.Series(['a','b','c','d','e']) print(a) #2.建立 ...

  5. Excel 数据透视表教程大全之 05 数据透视表绘制各种二维排列的数据,实现双向枢轴(教程含数据)

    什么是数据透视表? 您可以将数据透视表视为报告.但是,与静态报表不同,数据透视表提供数据的交互式视图.只需很少的努力(并且没有公式),您就可以从许多不同的角度查看相同的数据.您可以将数据分组,将数据分 ...

  6. SQL Server中数据透视表的Python脚本

    This article talks about Python scripts for creating pivot tables in multiple ways. 本文讨论了以多种方式创建数据透视 ...

  7. 按英语体育计算机创建透视表,利用Excel“数据透视表”管理体育器材

    单 伟 孙艳妙 摘 要:体育器材管理一直是体育管理者比较棘手的问题,本文结合一个具体实例,详细阐述了利用Excel"数据透视表"管理体育器材的方法,对于体育器材管理者非常实用. 关 ...

  8. 巧用Excel 2010数据透视表制作销售报表

    小刘需要根据2010-2011两年间的订单记录创建季度报表,以便分析各类图书的销售情况.面对如此庞大的订单记录,该从何下手呢? 其实最快捷的办法是使用Excel 2010创建数据透视表,以快速合并和比 ...

  9. sql同时修改两个表的数据_如何用SQL做数据透视表?

    - 点击上方"中国统计网"订阅我吧!- 讲过很多次,数据分组和数据透视表很像,Sql 中的数据分组大家应该都很熟悉了,用的就是 group by. 数据透视表是作为一个数据分析师最 ...

最新文章

  1. js GB2312和unicode互转
  2. Python类三种方法,函数传参,类与实例变量
  3. 2道python基础练习
  4. 复现经典:《统计学习方法》第 2 章 感知机
  5. Python内置函数之--open
  6. 构造函数、原型、继承原来这么简单?来吧,深入浅出
  7. 如何格式化电脑_如何将c盘格式化,垃圾文件太多,不知道怎么办
  8. C语言控制台窗口图形界面编程(六):光标操作
  9. php想做一个无刷新弹窗,php+ajax实现无刷新的新闻留言系统
  10. Visual Studio Code 取色器插件 取色选取 插件安装和使用
  11. Excel - 透视表 - 组合 分组
  12. 织梦后台界面修改方法
  13. 马斯克收购 Twitter 后的 Web3 改革方向
  14. 效率篇-定时任务管理系统,替代crontab
  15. Python 中模拟键盘输入
  16. c语言switch有什么作用,c语言switch语句如何使用
  17. 视频原声能去掉吗?怎么批量处理
  18. ​分享|Tiktok小店入驻如何选择​
  19. mysql myisam转innodb_转:MySQL从MyISAM引擎转换到InnoDB引擎需要注意的地方
  20. iPhone破解相关知识

热门文章

  1. 集合添加元素python_闵行区集装箱酒店安装,集装箱集市
  2. Error occurred during initialization of um Could not reserve enough space for object heap
  3. 发表文章 中国历史简述
  4. 推荐13款非常不错的3DMax渲染器插件
  5. 第一届蓝桥杯决赛B组C++题解代码
  6. 云徙打造新一代数字中台:数字化增长终局是全链路营销一体化?
  7. 蝰蛇峡谷如何组RAID
  8. C++ Primer 第五版 部分课后题答案
  9. UG通讯类复杂薄壁产品工厂案例,00多张图档全是工厂实际加工案例整理归纳
  10. 基于uni-app的表白墙小程序