Exportar datos a Excel en Python

Muhammad Maisam Abbas 30 enero 2023
  1. Exportar datos a Excel con la función DataFrame.to_excel() en Python
  2. Exportar datos a Excel con la biblioteca xlwt en Python
  3. Exportar datos a Excel con la biblioteca openpyxl en Python
  4. Exportar datos a Excel con la biblioteca XlsWriter en Python
Exportar datos a Excel en Python

Este tutorial demostrará diferentes métodos para escribir datos tabulares en un archivo de Excel en Python.

Exportar datos a Excel con la función DataFrame.to_excel() en Python

Si queremos escribir datos tabulares en una hoja de Excel en Python, podemos usar la función to_excel() en Pandas DataFrame.

Un DataFrame de pandas es una estructura de datos que almacena datos tabulares. La función to_excel() toma dos parámetros de entrada: el nombre del archivo y el nombre de la hoja. Debemos almacenar nuestros datos dentro de un DataFrame de pandas y luego llamar a la función to_excel() para exportar esos datos a un archivo de Excel.

Necesitamos tener la biblioteca pandas ya instalada en nuestro sistema para que este método funcione. El comando para instalar la biblioteca pandas se da a continuación.

pip install pandas

Una demostración de trabajo de este enfoque se da a continuación.

import pandas as pd

list1 = [10, 20, 30, 40]
list2 = [40, 30, 20, 10]
col1 = "X"
col2 = "Y"
data = pd.DataFrame({col1: list1, col2: list2})
data.to_excel("sample_data.xlsx", sheet_name="sheet1", index=False)

Archivo sample_data.xlsx:

Data de muestra

En el código anterior, exportamos los datos dentro de list1 y list2 como columnas al archivo de Excel sample_data.xlsx con la función to_excel() de Python.

Primero almacenamos los datos dentro de ambas listas en un DataFrame de pandas. Después de eso, llamamos a la función to_excel() y pasamos los nombres de nuestro archivo de salida y la hoja.

Tenga en cuenta que este método solo funcionará siempre que la longitud de ambas listas sea igual. Si las longitudes no son iguales, podemos compensar los valores faltantes completando la lista más corta con el valor None.

Este es el método más fácil para escribir datos en un archivo compatible con Excel en Python.

Exportar datos a Excel con la biblioteca xlwt en Python

La biblioteca xlwt se utiliza para escribir datos en hojas de cálculo antiguas compatibles con las versiones de Excel de 95 a 2003 en Python. Es la forma estándar de escribir datos en archivos de Excel en Python.

También es bastante simple y nos da más control sobre el archivo de Excel que el método anterior. Podemos crear un objeto de la clase xlwt.Workbook y llamar a la función .add_sheet() para crear una nueva hoja en nuestro libro de trabajo.

Entonces podemos usar el método write() para escribir nuestros datos. Esta función write() toma el índice de la fila (a partir de 0), el índice de la columna (también a partir de 0) y los datos que se escribirán como parámetros de entrada.

Necesitamos instalar la biblioteca xlwt en nuestra máquina para que este método funcione. El comando para instalar la biblioteca se proporciona a continuación.

pip install xlwt

Un breve ejemplo de trabajo de este método se da a continuación.

import xlwt
from xlwt import Workbook

wb = Workbook()

sheet1 = wb.add_sheet("Sheet 1")
# sheet1.write(row,col, data, style)
sheet1.write(1, 0, "1st Data")
sheet1.write(2, 0, "2nd Data")
sheet1.write(3, 0, "3rd Data")
sheet1.write(4, 0, "4th Data")

wb.save("sample_data2.xls")

Archivo sample_data2.xls:

datos de muestra2

En Python, escribimos datos en el archivo sample_data2.xls con la biblioteca xlwt.

Primero creamos un objeto de la clase Workbook. Usando este objeto, creamos una hoja con el método add_sheet() de la clase Workbook.

Luego escribimos nuestros datos en la hoja recién creada con la función escribir(). Por último, cuando todos los datos se escribieron correctamente en su índice especificado, guardamos el libro de trabajo en un archivo de Excel con la función guardar() de la clase Libro de trabajo.

Este es un enfoque bastante sencillo, pero el único inconveniente es que tenemos que recordar el índice de fila y columna para cada celda de nuestro archivo. No podemos usar simplemente los índices A1 y A2. Otra desventaja de este enfoque es que solo podemos escribir archivos con la extensión .xls.

Exportar datos a Excel con la biblioteca openpyxl en Python

Otro método que se puede usar para escribir datos en un archivo compatible con Excel es la biblioteca openpyxl en Python.

Este enfoque aborda todos los inconvenientes de los métodos anteriores. No necesitamos recordar los índices exactos de fila y columna para cada punto de datos. Simplemente especifica nuestras celdas como A1 o A2 en la función write().

Otra ventaja interesante de este enfoque es que se puede usar para escribir archivos con las nuevas extensiones de archivo .xlsx, que no era el caso en el enfoque anterior. Este método funciona igual que el anterior.

La única diferencia aquí es que tenemos que inicializar cada celda además de una hoja con el método cell(row,col) en la biblioteca openpyxl.

El openpyxl también es una biblioteca externa. Necesitamos instalar esta biblioteca para que este método funcione correctamente. El comando para instalar la biblioteca openpyxl en nuestra máquina se encuentra a continuación.

pip install openpyxl

A continuación se proporciona una demostración de trabajo simple de este enfoque.

import openpyxl

my_wb = openpyxl.Workbook()
my_sheet = my_wb.active
c1 = my_sheet.cell(row=1, column=1)
c1.value = "Maisam"
c2 = my_sheet.cell(row=1, column=2)
c2.value = "Abbas"
c3 = my_sheet["A2"]
c3.value = "Excel"
# for B2: column = 2 & row = 2.
c4 = my_sheet["B2"]
c4.value = "file"
my_wb.save("sample_data3.xlsx")

Archivo sample_data3.xlsx:

datos de muestra3

En el código anterior, escribimos datos en el archivo de Excel sample_data3.xlsx con la biblioteca openpyxl en Python.

Primero creamos un objeto de la clase Workbook. Creamos una hoja con el Workbook.active usando este objeto. También creamos un objeto de celda con my_sheet.cell(row = 1, column = 1).

En lugar de escribir el número exacto de fila y columna, también podemos especificar el nombre de la celda como A1. Luego podemos asignar nuestro valor de celda recién creado con c1.value = "Maisam".

Por último, cuando todos los datos se escribieron correctamente en su índice especificado, guardamos el libro de trabajo en un archivo de Excel con la función save() de la clase Workbook.

Exportar datos a Excel con la biblioteca XlsWriter en Python

Otra forma excelente y sencilla de escribir datos en un archivo compatible con Excel es la biblioteca XlsWriter en Python.

Esta biblioteca nos brinda mucho más control sobre nuestro archivo de salida que cualquier método anterior mencionado anteriormente. Esta biblioteca también es compatible con las últimas extensiones de archivo compatibles con Excel, como xlsx.

Para escribir datos en un archivo de Excel, primero debemos crear un objeto de la clase Workbook proporcionando el nombre del archivo del constructor como parámetro de entrada. Luego tenemos que crear una hoja con la función add_worksheet() en la clase Workbook.

Después de agregar una hoja, podemos escribir datos con la función sheet.write(cell, data). Esta función sheet.write() toma dos parámetros: el nombre de la celda y los datos a escribir.

Después de escribir todos los datos en la hoja, debemos cerrar nuestro libro de trabajo con el método close() dentro de la clase Workbook.

El XlsWriter es una biblioteca externa y no viene preinstalado con Python. Primero tenemos que instalar la biblioteca XlsWriter en nuestra máquina para que este método funcione. El comando para instalar la biblioteca XlsWriter se proporciona a continuación.

pip install XlsxWriter

A continuación se muestra una demostración de trabajo de este enfoque.

import xlsxwriter

workbook = xlsxwriter.Workbook("sample_data4.xlsx")
sheet = workbook.add_worksheet()

sheet.write("A1", "Maisam")
sheet.write("A2", "Abbas")

workbook.close()

Archivo sample_data4.xlsx:

datos de muestra4

Escribimos datos en el archivo de Excel sample_data4.xlsx con la biblioteca xlswriter de Python en el código anterior.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Python Excel