如何使用pyExcelerator / xlrd之类的python库创建带有透视表的工作表(在excel工作簿中)?我需要生成一个具有透视表的每日报告,以汇总其他工作表上的数据。一种选择是有一个空白模板,我复制该模板并用数据填充。在这种情况下,有没有办法从代码中刷新透视表?还有其他建议吗?
发布于 2010-04-27 21:39:43
请(通过编辑您的问题)澄清"sheet“是"spreadsheet”的缩写并表示整个XLS文件,还是"worksheet“的缩写,即"workbook”的一个组成部分。
如果您所说的“数据透视表”指的是Excel机制,那么您就不走运了,因为它只能由Excel创建。但是,如果您指的是使用Python和适当的库创建自己的“交叉表”,则可以使用xlrd、xlwt和xlutils这三个库来实现此目的。
你似乎知道的xlrd。
xlwt是pyExcelerator的一个分支,修复了错误并进行了一些增强。pyExcelerator似乎没有得到维护。
xlutils是一个实用程序模块包。xlutils.copy可用于从xlrd Book对象创建xlwt Workbook对象,以便您可以对xlwt Workbook进行更改并将其保存到文件中。
这是你的one-stop-shop for more info on the three packages,还有一个教程,还有一个google-group/mailing list的链接,你可以用它来获取帮助。
发布于 2010-04-27 21:46:04
我不相信您可以使用xlwt以编程方式添加数据透视表。
但是您的第二种方法(填充一个预先配置的工作簿)似乎是合理的。
您可以使用模板工作簿中的VBA宏来刷新透视表。要自动执行此操作,请创建一个WorkBook_Open事件处理程序。
刷新数据透视表的VBA代码为:
Sheet1.PivotTables(1).PivotCache.Refresh发布于 2013-11-05 16:46:21
试着看看这个:Python: Refresh PivotTables in worksheet
如果您知道如何创建数据透视表,那么您可以使用我的代码来刷新它们
https://stackoverflow.com/questions/2719884
复制相似问题