背景
在使用xlwings 删除excel含有wps的嵌入式图片的部分数据时,发现无论如何删除,即使仅剩一行数据,excel的大小还是和原excel一致
解决思路
首先怀疑是xlwings 的问题,故使用openpyxl读取数据,发现文件大小虽然变小了,但是嵌入式的图片确没有保存,故放弃方法一
再者,发现手动删除某两行数据,在保存文件会变小,所以就使用xwlings删除含有图片的两行数据,保存后发现文件大小还是没有变化,经过自己思考过后才发现是因为在wps点击了保存导致,而xlwings是与office相绑定的自己手动删除后文件大小也不会变化,所以就去寻找python与wps交互的包,最终找到解决问题的代码
解决问题代码
import win32com.client
# 创建WPS的COM对象
wps = win32com.client.Dispatch("KET.Application")
# 启动WPS应用程序
wps.Visible = False
# 打开一个文档
doc = wps.Workbooks.Open('xxxx.xlsx')
# 保存并关闭文档
doc.Save()
doc.Close()
# 退出WPS应用程序
wps.Quit()
总结
还是遇到的问题太少了,需要多遇到问题,能够快速找到问题所在,从而解决问题,“革命尚未成功,同志仍需努力”