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