Saltar al contenido

Python win32 COM cerrando el libro de trabajo de Excel

Solución:

El objeto COM del libro de trabajo tiene un método Close (). Básicamente, debería ser algo como:

xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Open('New Workbook.xlsx')
# do some stuff
wb.Close(True) # save the workbook

Lo anterior era solo un esqueleto, aquí hay un código que funciona en mi máquina contra Office 2010:

from win32com.client import Dispatch
xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Add()
ws = wb.Worksheets.Add()
cell = ws.Cells(1)
cell.Value="Some text"
wb.Close(True, r'C:PathtofolderTest.xlsx')

Por supuesto, eso crea un nuevo archivo xlsx. Pero luego puedo abrir y modificar con éxito el archivo en la misma sesión de la siguiente manera:

wb = xl.Workbooks.Open(r'C:PathtofolderTest.xlsx')
ws = wb.Worksheets(1)
cell = ws.Cells(2)
cell.Value="Some more text"
wb.Close(True)

No sé si algo de eso ayuda …

También puede intentar utilizar el siguiente código:

excel = Dispatch("Excel.Application")
excel.Visible = False
workbook = excel.Workbooks.Open(fileName)

# with saving
excel.DisplayAlerts = False
if saveAs:
    excel.ActiveWorkbook.SaveAs(fullFileNameToSave)
else:
    excel.ActiveWorkbook.Save()
excel.Quit()

#without saving

map(lambda book: book.Close(False), excel.Workbooks)
excel.Quit()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *