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

2024-06-25 23:08:12 发布

您现在位置:Python中文网/ 问答频道 /正文

  Traceback (most recent call last):
    
      File "<ipython-input-19-eed7c559bf73>", line 25, in <module>
        wb.SaveAs(r'C:\Users\maria isabel\Desktop\Clases Particulares\Python\Proyecto_Jose\25_06_2020\Resultado.xlsx')
    
      File "C:\Users\maria\AppData\Local\Temp\gen_py\3.7\00020813-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:\n\n• 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:\Users\maria isabel\Desktop\Clases Particulares\Python\Proyecto_Jose\25_06_2020\Resultado.xlsx')
excel.Application.Quit()

但它总是告诉我这个错误。实际上,代码运行并创建xlsx,但我想知道如何在终端中避免此消息。当我对当前目录执行listdir操作时,会显示文件名,并且不会在其他位置打开(我通过任务管理器验证了这一点)


Tags: inindexwsusersdesktopwbletrasspot