Microsoft Excel 无法使用 win 32 从 python 访问该文件,但该文件存在且路径正确


Traceback (most recent call last):

File "<ipython-input-19-eed7c559bf73>", line 25, in <module>
wb.SaveAs(r'C:Usersmaria isabelDesktopClases ParticularesPythonProyecto_Jose25_06_2020Resultado.xlsx')

File "C:UsersmariaAppDataLocalTempgen_py3.70020813-0000-0000-C000-000000000046x0x1x9_Workbook.py", line 288, in SaveAs
, Local, WorkIdentity)

com_error: (-2147352567, 'Ocurrió una excepción.', (0, 'Microsoft Excel', "Microsoft Excel no puede obtener acceso al archivo 'C:\Users\maria isabel\Desktop\Clases Particulares\Python\Proyecto_Jose\25_06_2020\AE044300'. Puede haber varios motivos:nn• El nombre o la ruta del archivo no existen.n• Otro programa está usando el archivo.n• El libro que está intentando guardar tiene el mismo nombre que otro libro que está abierto en estos momentos.", 'xlmain11.chm', 0, -2146827284), None)

这是我遇到的问题,我正在尝试以下代码:

import string
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(wb_path)
ws = wb.Worksheets("Spot")
rows = Resultados_Modelo_spot.shape[0]
# ws.Range(f"A2:A{rows}").Value = Resultados_Modelo_spot.index
letras = string.ascii_uppercase
letras = letras[1:14]
cont_paginas = 0
for index, column in enumerate(letras):
for fila in range(rows):

ws.Range(f"A{fila + 2}:A{fila + 2}").Value = Resultados_Modelo_spot.index[fila]
ws.Range(f"{column}{fila+2}:{column}{fila + 2}").Value = Resultados_Modelo_spot.iloc[fila, index]
wb.ActiveSheet.ExportAsFixedFormat(0, path_to_pdf2)
wb.SaveAs(r'C:Usersmaria isabelDesktopClases ParticularesPythonProyecto_Jose25_06_2020Resultado.xlsx')
excel.Application.Quit()

但它总是告诉我这个错误。实际上代码运行并创建了 xlsx,但我想知道如何在我的终端中避免此消息。当我对当前目录进行listdir时,会出现文件名,并且它没有在其他地方打开(我用任务管理器验证了这一点(。

原因可能是SaveAs功能与新版本的Excel不兼容,尝试修改wb.SaveAs()wb.ActiveWorkbook.SaveAs()

最新更新