软件环境
- windows
- python
- pandas
- openpyxl
- xlwings
- excel(microso Excel,WPS不能用这个方法)
步骤
-
准备一个存放原始数据的 csv / xlsx 文件 原始数据.csv / 原始数据.xlsx。使用手工 或 手工+python脚本的形式向其中增改数据。
-
用 Microsoft Excel 新建一个报表文件 报表.xlsx。使用“数据连接”功能,获取 原始数据.xlsx 中的数据,并通过 数据透视表 / 数据透视图 / 公式 等方式编辑报表数据格式。
-
通过手工 或 python脚本,对 报表.xlsx 文件进行刷新。
手工刷新方式(点击数据图表的全部刷新,有时需要刷新多次)
python脚本刷新
# 刷新报表文件 import xlwings as xw app = xw.App(visible=False) #打开excel文件 workbook = app.books.open('./auto_excel/报表.xlsx') #刷新所有数据 workbook.api.RefreshAll() workbook.save() #在数据连接步骤,因为操作方式差异,有时需要刷新多次。 #workbook.api.RefreshAll() #workbook.save() #workbook.api.RefreshAll() #workbook.save() # 关闭工作簿 workbook.close() #关闭Excel应用 app.quit() print('excel 更新完毕')
相比其他报表自动化方法的优点
- 数据处理可以自由选择在 excel 或 python进行。
- 新手可以选择在 报表.xlsx 中进行数据连接时,在 power query 中处理数据,或者上载至sheet中进行数据处理;
- (建议该方式)会python的可以直接在python中将数据处理好,再存入 数据源.xlsx
- 不用专门学习 python 的 openpyxl / xlwings 等工具包的使用,学习成本低,上手简单。
- 报表样式、布局使用原生excel操作进行,缩短学习周期。
缺点
- 依赖 windows 环境和 Microsoft Excel。使用wps无法实现上述操作。