You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

关键修改说明:

  1. xl.DisplayAlerts = False:彻底关闭Excel的警告弹窗,避免覆盖确认提示干扰流程
  2. wb.SaveAs(FilePath, FileFormat=52, ConflictResolution=2):
    • FilePath 确保文件保存到你指定的C:\Users\bands\Test目录
    • FileFormat=52 强制保存为xlsm格式(对应Excel的宏工作簿格式)
    • ConflictResolution=2(对应Excel内置常量xlLocalSessionChanges):直接覆盖现有文件,无需手动确认

内容的提问来源于stack exchange,提问作者storyr4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 21:23:19