使用pyExcelerator / xlrd进行枢轴转动

时间:2010-04-27 08:58:07

标签: python excel pyexcelerator xlrd

如何使用python库(如pyExcelerator / xlrd)创建带有数据透视表的工作表(在excel工作簿中)?我需要生成一个每日报告,其中包含一个数据透视表,用于汇总其他工作表上的数据。一种选择是使用我复制并填充数据的空白模板。在这种情况下,有没有办法从代码刷新数据透视?还有其他建议吗?

3 个答案:

答案 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

如果您弄清楚如何创建数据透视表,那么您可以使用我的代码刷新它们