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