wb.SaveAs() 保存路径错误,如何指定原路径并自动覆盖文件?
解决Excel文件保存路径错误及覆盖提示问题
核心修改点:
- 指定完整保存路径:
wb.SaveAs必须传入完整文件路径,而非仅文件名,否则Excel会默认保存到「我的文档」目录 - 关闭覆盖提示并自动覆盖:通过设置Excel应用的警告开关,配合保存时的冲突解决参数,实现无提示覆盖
修改后的完整代码:
from selenium import webdriver from selenium.webdriver.support.select import Select from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains import time import pyautogui import os from selenium.webdriver.chrome.options import Options import shutil import glob import pandas as pd import win32com.client from xlrd import * import csv import sys import openpyxl from openpyxl import Workbook FilePath = r'C:\Users\bands\Test\Test.xlsm' FileName = 'Test.xlsm' xl = win32com.client.Dispatch("Excel.Application") # 关闭Excel所有弹出警告(含覆盖确认框) xl.DisplayAlerts = False wb = xl.Workbooks.Open(os.path.abspath(FilePath), False, True, None, 'Password') # 写入数据 ws = wb.Worksheets('Rolling Calendar View') ws.Range('C19').Value = "87" ws.Range('C21').Value = "87" # 用完整路径保存,指定xlsm格式并设置自动覆盖 wb.SaveAs(FilePath, FileFormat=52, ConflictResolution=2) xl.Application.Run("Refresh") xl.Application.Run("EMAIL") xl.Application.Quit() del xl
关键修改说明:
xl.DisplayAlerts = False:彻底关闭Excel的警告弹窗,避免覆盖确认提示干扰流程wb.SaveAs(FilePath, FileFormat=52, ConflictResolution=2):FilePath确保文件保存到你指定的C:\Users\bands\Test目录FileFormat=52强制保存为xlsm格式(对应Excel的宏工作簿格式)ConflictResolution=2(对应Excel内置常量xlLocalSessionChanges):直接覆盖现有文件,无需手动确认
内容的提问来源于stack exchange,提问作者storyr4
相关产品推荐
相关产品推荐

