python 利用win32com进行数据透视表绘制
在日常处理中或许会用到数据透视表的功能,但发现对于使用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进行数据透视表绘制相关推荐
- 利用 Sql 实现数据透视表功能
讲过很多次,数据分组和数据透视表很像,Sql 中的数据分组大家应该都很熟悉了,用的就是 group by.数据透视表是作为一个数据分析师最基本,也是使用频率最高的一个功能了,我们可以把明细数据从数据库 ...
- python多个sheet数据透视表_python创建excel数据透视表(基于win32com)
excel的数据透视表可以帮助我们快速统计数据,排版.比自己开发脚本,要快捷很多.对指定的区域的数据创建透视表 import win32com.client as win32 from win32co ...
- python多个sheet数据透视表_python 用pandas实现数据透视表功能
透视表是一种可以对数据动态排布并且分类汇总的表格格式.对于熟练使用 excel 的伙伴来说,一定很是亲切! pd.pivot_table() 语法: pivot_table(data, # dataf ...
- python实现excel数据透视表_用python建立excel的数据透视表
import pandas as pd import numpy as np #1.建立一维数据 a = pd.Series(['a','b','c','d','e']) print(a) #2.建立 ...
- Excel 数据透视表教程大全之 05 数据透视表绘制各种二维排列的数据,实现双向枢轴(教程含数据)
什么是数据透视表? 您可以将数据透视表视为报告.但是,与静态报表不同,数据透视表提供数据的交互式视图.只需很少的努力(并且没有公式),您就可以从许多不同的角度查看相同的数据.您可以将数据分组,将数据分 ...
- SQL Server中数据透视表的Python脚本
This article talks about Python scripts for creating pivot tables in multiple ways. 本文讨论了以多种方式创建数据透视 ...
- 按英语体育计算机创建透视表,利用Excel“数据透视表”管理体育器材
单 伟 孙艳妙 摘 要:体育器材管理一直是体育管理者比较棘手的问题,本文结合一个具体实例,详细阐述了利用Excel"数据透视表"管理体育器材的方法,对于体育器材管理者非常实用. 关 ...
- 巧用Excel 2010数据透视表制作销售报表
小刘需要根据2010-2011两年间的订单记录创建季度报表,以便分析各类图书的销售情况.面对如此庞大的订单记录,该从何下手呢? 其实最快捷的办法是使用Excel 2010创建数据透视表,以快速合并和比 ...
- sql同时修改两个表的数据_如何用SQL做数据透视表?
- 点击上方"中国统计网"订阅我吧!- 讲过很多次,数据分组和数据透视表很像,Sql 中的数据分组大家应该都很熟悉了,用的就是 group by. 数据透视表是作为一个数据分析师最 ...
最新文章
- js GB2312和unicode互转
- Python类三种方法,函数传参,类与实例变量
- 2道python基础练习
- 复现经典:《统计学习方法》第 2 章 感知机
- Python内置函数之--open
- 构造函数、原型、继承原来这么简单?来吧,深入浅出
- 如何格式化电脑_如何将c盘格式化,垃圾文件太多,不知道怎么办
- C语言控制台窗口图形界面编程(六):光标操作
- php想做一个无刷新弹窗,php+ajax实现无刷新的新闻留言系统
- Visual Studio Code 取色器插件 取色选取 插件安装和使用
- Excel - 透视表 - 组合 分组
- 织梦后台界面修改方法
- 马斯克收购 Twitter 后的 Web3 改革方向
- 效率篇-定时任务管理系统,替代crontab
- Python 中模拟键盘输入
- c语言switch有什么作用,c语言switch语句如何使用
- 视频原声能去掉吗?怎么批量处理
- ​分享|Tiktok小店入驻如何选择​
- mysql myisam转innodb_转:MySQL从MyISAM引擎转换到InnoDB引擎需要注意的地方
- iPhone破解相关知识
热门文章
- 集合添加元素python_闵行区集装箱酒店安装,集装箱集市
- Error occurred during initialization of um Could not reserve enough space for object heap
- 发表文章 
中国历史简述
- 推荐13款非常不错的3DMax渲染器插件
- 第一届蓝桥杯决赛B组C++题解代码
- 云徙打造新一代数字中台:数字化增长终局是全链路营销一体化?
- 蝰蛇峡谷如何组RAID
- C++ Primer 第五版 部分课后题答案
- UG通讯类复杂薄壁产品工厂案例,00多张图档全是工厂实际加工案例整理归纳
- 基于uni-app的表白墙小程序