[与未回答相关的问题:https://stackoverflow.com/questions/72364144/python-3-8-0-xlwings-save-fails-on-windows-7/75775612#75775612]
我正在使用 Xlwings Python 包打开现有的 Excel 文件,写入,关闭并使用 same 名称保存它(即覆盖原始文件)。
这是我的代码片段:
import xlwings as xw
excel_file = "C:\\Working Drive\\Automation Scripts\\my_file.xlsx"
with xw.App(visible=True) as app:
wb = app.books.open(excel_file)
ws = wb.sheets['MySheet']
# write into some cells...
wb.save(excel_file)
wb.close()
根据需要打开 Excel 文件,并根据代码在其中进行修改。我什至可以看到 Excel 弹出窗口显示“文件保存”和文件路径。一旦保存似乎完成(即 excel 弹出窗口上的进度条到达末尾),我的代码崩溃并在 wb.save() 行显示以下错误。
Traceback (most recent call last):
File "test.py", line 30, in <module>
wb.save(excel_file)
File "C:\Users\XXX\AppData\Local\Programs\Python\Python38\lib\site-packages\xlwings\main.py", line 1147, in save
self.impl.save(path, password=password)
File "C:\Users\XXX\AppData\Local\Programs\Python\Python38\lib\site-packages\xlwings\_xlwindows.py", line 847, in save
self.xl.SaveAs(
File "C:\Users\XXX\AppData\Local\Programs\Python\Python38\lib\site-packages\xlwings\_xlwindows.py", line 1-9, in __call__
v = self.__method(*args, **kwargs)
File "C:\Users\XXX\AppData\Local\Temp\gen_py\3.8\00020813-0000-0000-C000-000000000046x0x1x9.py", line 45271, in SaveAs
return self._oleobj_.InvokeTypes(3174, LCID, 1, (24, 0), ((12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (3, 49), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17)),Filename
pywintypes.com_error: (-214735267, 'Exception Occured', (0, "Microsoft Excel", "Cannot access 'my_file.xlsx'.", 'xlmain11.chm', 0, -2146827284), None)
我尝试在同一目录中以不同名称保存相同的文件并且它有效
wb.save("C:\Working Drive\Automation Scripts\my_file_1.xlsx")
我尝试在所有路径上使用
os.path.normpath()
,但问题仍然存在。