![d776df1d162e8bbfd6b6bf1b49c88308.png](https://i-blog.csdnimg.cn/blog_migrate/2d506e5af30d24c473f3dec4e689d592.png)
每周都要做报表,感觉手动更新数据再出图比较费时,想着报表制作脚本化,大体思路就是按照VBA录制宏代码再用win32com的API进行改造,但是遇到操作数据透视表更新数据的时候卡住了,百度谷歌都没有搜到合适的Demo参考,然后自己调试出来了,在这里分享一下。
说明:这篇文章是针对Python操作更新已有数据透视表的数据源,如果是针对Excel的简单操作推荐使用Openpyxl或者Xlwings(其中Xlwings可以直接把Pandas的Dataframe写入到指定的Excel Sheet页,代码如下;Pandas自带的df.to_excel默认会删除其它Sheet页,优化方法可以参考评论区网友分享)。
# df = pd.read_sql(sql, con=mysql_pd) # 前面的数据处理省略了
# file_name = "07-23,1111@wk29报表.xlsx"
import xlwings as xw
xw_app = xw.App(visible=True, add_book=False)
xw_book = xw_app.books.open(file_name)
xw_sht = xw_book.sheets['查询1']
xw_sht.clear() # 清空Sheet页“查询1”的旧