使用pyExcelerator/xlrd进行数据透视

2 投票
3 回答
7235 浏览
提问于 2025-04-15 22:03

我想知道怎么用Python库,比如pyExcelerator或xlrd,来创建一个Excel工作簿里的工作表,并在里面放一个数据透视表。我需要生成一个每天的报告,这个报告里要有一个数据透视表,用来总结其他工作表上的数据。一个方法是先准备一个空白模板,然后把数据复制到这个模板里。在这种情况下,有没有办法通过代码来刷新这个数据透视表?还有其他的建议吗?

3 个回答

0

你可以看看这个链接:Python: 刷新工作表中的数据透视表

如果你弄明白了怎么创建数据透视表,那么你就可以用我的代码来刷新它们。

0

我觉得你不能通过编程的方式用 xlwt 来添加数据透视表。

不过,你的第二种方法(填充一个预先配置好的工作簿)听起来不错。

你可以通过在模板工作簿中使用VBA宏来刷新数据透视表。要实现自动刷新,可以创建一个 WorkBook_Open 事件处理程序。

用来刷新数据透视表的VBA代码是:

Sheet1.PivotTables(1).PivotCache.Refresh
5

请明确一下(通过编辑你的问题)“sheet”是指“电子表格”的缩写,表示整个 XLS 文件,还是指“工作表”,也就是“工作簿”的一个组成部分。

如果你说的“数据透视表”是指 Excel 的功能,那就没办法了,因为这个功能只能在 Excel 中创建。不过,如果你是指用 Python 和合适的库自己创建的“交叉表”,那你可以使用 xlrd、xlwt 和 xlutils 这三个库来实现。

你似乎对 xlrd 有所了解。

xlwt 是 pyExcelerator 的一个分支,修复了一些错误并进行了多项增强。pyExcelerator 似乎已经不再维护了。

xlutils 是一组实用模块的集合。你可以使用 xlutils.copy 将一个 xlrd 的 Book 对象转换成 xlwt 的 Workbook 对象,这样你就可以对 xlwt 的 Workbook 进行修改并保存到文件中。

这里是你的 获取这三个库更多信息的一站式网站,里面有教程和链接到一个 Google 群组/邮件列表,你可以在那儿寻求帮助。

撰写回答