长尾关键词挖掘网站,漳州 网站建设公司哪家好,wordpress漂浮框,创新的广州做网站比如我们有一个待刷新的Excel叫测试.xlsx
这里我们使用python控制Excel的应用来直接刷新相关页面#xff1a;
传入的Excel路径需要是完整的路径#xff0c;否则会提示找不到#xff1a;pywintypes.com_error: (-2147352567, 发生意外。, (0, Microsoft Excel, 抱歉#x…比如我们有一个待刷新的Excel叫测试.xlsx
这里我们使用python控制Excel的应用来直接刷新相关页面
传入的Excel路径需要是完整的路径否则会提示找不到pywintypes.com_error: (-2147352567, 发生意外。, (0, Microsoft Excel, 抱歉无法找到 测试.xlsx。是否可能被移动、重命名或删除?, xlmain11.chm, 0, -2146827284), None)使用wb.RefreshAll()进行刷新老版本的程序是wb.refresh_all()而博主测试的时候使用的应该是wb.RefreshAll()这个程序刷新结束后等待一些时间以便给程序更多时间减少刷新一部分的概率最后使用wb.Save()与xlApp.Quit()保存并退出如果意外退出程序而没有运行xlApp.Quit()需要进入控制台并关闭Excel的进程才行
其中博主在定时任务中启动这个程序会报错pywintypes.com_error: (-2147221008, 尚未调用 CoInitialize。, None, None)为了解决这个问题在调用Excel.Application前后使用pythoncom这个是win32com库安装时安装的可以直接import把启动的Excel包裹起来
import pythoncom
pythoncom.CoInitialize()
xlApp win32com.client.DispatchEx(Excel.Application)
# 对xlApp的各种操作
pythoncom.CoUninitialize()最后打包成一个函数
import os
import time
import pythoncom
import win32com.client
from loguru import loggerdef refresh_excel(filepath, refresh_sleet5):刷新文件:param filepath:文件名:param refresh_sleet:刷新后等待时间(单位秒)logger.debug(f读取文件:{filepath})pythoncom.CoInitialize()parent os.path.dirname(os.path.realpath(__file__)) # 确定文件的真实路径xlApp win32com.client.DispatchEx(Excel.Application)wb xlApp.Workbooks.Open(os.path.join(parent, filepath))wb.RefreshAll()logger.success(f刷新完成 等待{refresh_sleet}s)time.sleep(refresh_sleet)wb.Save() # 保存原文件xlApp.Quit()pythoncom.CoUninitialize()logger.debug(fExcel刷新完成 {filepath})示例程序
import os
import time
import pythoncomimport win32com.client
from loguru import loggerdef refresh_excel(filepath, refresh_sleet5):刷新文件:param filepath:文件名:param refresh_sleet:刷新后等待时间(单位秒)logger.debug(f读取文件:{filepath})pythoncom.CoInitialize()parent os.path.dirname(os.path.realpath(__file__)) # 确定文件的真实路径xlApp win32com.client.DispatchEx(Excel.Application)wb xlApp.Workbooks.Open(os.path.join(parent, filepath))wb.RefreshAll()logger.success(f刷新完成 等待{refresh_sleet}s)time.sleep(refresh_sleet)wb.Save() # 保存原文件xlApp.Quit()pythoncom.CoUninitialize()logger.debug(fExcel刷新完成 {filepath})def main():excel refresh_excel(测试.xlsx)if __name__ __main__:main()刷新后的结果会在控制台打印如下内容
2023-12-19 17:03:20.705 | DEBUG | __main__:refresh_excel:13 - 读取文件:测试.xlsx
2023-12-19 17:03:24.614 | SUCCESS | __main__:refresh_excel:19 - 刷新完成 等待5s
2023-12-19 17:03:29.667 | DEBUG | __main__:refresh_excel:23 - Excel刷新完成 测试.xlsx