es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo exportar un dataframe de Python a una hoja de cálculo de Excel existente y conservar el formato?

Estoy intentando exportar un dataframe que he generado en Pandas a un libro de Excel. He logrado hacer que esa parte funcione, pero desafortunadamente, sin importar lo que intente, el dataframe se inserta en el libro de trabajo como una nueva hoja de cálculo.

En última instancia, lo que intento hacer aquí es crear un programa que obtenga datos de la API de un sitio web y los importe en una hoja de Excel existente para crear algún tipo de “libro de trabajo de Excel con actualización en tiempo real”. Esto significa que la hoja de cálculo ya tiene un formato correcto, VBA y otras columnas calculadas aplicadas, y idealmente, todo esto debería permanecer igual, excepto por los datos básicos en el dataframe que estoy importando.

¿Hay alguna forma de hacer esto? Cualquier dirección sería bastante útil. Gracias.

Aquí está mi código actual:

file = 'testbook.xlsx'
writer = pd.ExcelWriter(file, engine='xlsxwriter')
df.to_excel(writer, sheet_name="Sheet1")
workbook = writer.book   
worksheet = writer.sheets["Sheet1"]
writer.save
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para importar el dataframe a una hoja de Excel existente, puedes especificar el nombre de la hoja como parámetro en el método to_excel. Por ejemplo:

    file = 'testbook.xlsx'
    book = load_workbook(file)
    writer = pd.ExcelWriter(file, engine='openpyxl')
    writer.book = book
    df.to_excel(writer, sheet_name='Hoja1', index=False, header=False, startrow=<fila_inicial>, startcol=<columna_inicial>)
    writer.save()
    

    La función load_workbook cargarará el libro de trabajo existente desde el archivo y lo pasará a ExcelWriter de pandas. Utiliza index=False y header=False en el método to_excel para excluir los encabezados de columna y el índice del dataframe.

    También puedes especificar los números de fila y columna de inicio utilizando los parámetros startrow y startcol, respectivamente, para controlar dónde se debe escribir el dataframe en la hoja.

    De esta manera, cualquier formato o cálculo existente en la hoja especificada en el libro de trabajo de Excel se mantendrá intacto, y los nuevos datos del dataframe se insertarán en la ubicación especificada.

Comments are closed.