USO DE IRONXL FOR PYTHON

Cómo importar un archivo Excel en una tabla de base de datos usando python

En el mundo actual, impulsado por los datos, su tratamiento y procesamiento eficientes son tareas esenciales para cualquier organización o individuo. Python, con su rico ecosistema de bibliotecas, ofrece herramientas potentes para la manipulación y gestión de datos, como la biblioteca import pandas. Un escenario común es la necesidad de extraer o importar datos de Excel hojas de cálculo y almacenar o insertar datos en una base de datos para un análisis posterior o integración con otros sistemas. En este tutorial, exploraremos cómo crear un script de Python que automatice este proceso, permitiéndole leer sin problemas datos de archivos de hojas Excel e insertarlos en una base de datos. Al final de este tutorial, estarás listo para manejar las tareas de migración de datos de manera eficiente. ¡Comencemos!

Cómo importar un archivo Excel en una tabla de base de datos usando python

  1. Comience por instalar la biblioteca IronXL.

  2. Carga tu archivo Excel en la memoria utilizando IronXL.

  3. Cargue la hoja de cálculo específica con la que desea trabajar.

  4. Seleccione el intervalo de datos preciso que desea importar.

  5. Establecer una conexión con cualquier base de datos como SQLite o MySQL base de datos de conexión utilizando Python.

  6. Cree una nueva tabla en su base de datos SQLite para alojar los datos importados.

  7. Inserte las filas seleccionadas del archivo Excel en la tabla SQLite recién creada.

  8. Recuperar y seleccionar datos de la tabla SQLite creada para su posterior análisis o procesamiento.

    En este tutorial, usaremos IronXL, una biblioteca de Python reconocida por su eficiencia en el manejo de archivos de Excel. Al integrar IronXL en nuestro script, garantizamos una extracción perfecta de los datos de las hojas de cálculo de Excel, lo que permite una inserción sin problemas en las bases de datos para su posterior análisis y procesamiento.

¿Qué es IronXL?

IronXL es una biblioteca de Python desarrollada por Iron Software, que ofrece una funcionalidad robusta para leer, generar, y editar archivos de Excel directamente dentro de las aplicaciones Python. En particular, IronXL destaca por su independencia de la instalación de Microsoft Excel, lo que simplifica la implantación en distintos entornos. Con IronXL, los desarrolladores se benefician de:

Compatibilidad multiplataforma: Disfrute de un funcionamiento sin problemas en plataformas Windows, macOS, Linux, Docker, Azure y AWS, asegurando adaptabilidad a diversas configuraciones de desarrollo.

Importación y Exportación de Datos: Maneje fácilmente la importación de datos desde archivos XLS, XLSX, CSV y TSV, con la flexibilidad de exportar hojas de trabajo a estos formatos e incluso a JSON para una mejor interoperabilidad.

Características de cifrado: Garantice la seguridad de los datos aprovechando las capacidades de cifrado de IronXL, lo que permite la protección de archivos XLSX, XLSM y XLTX con contraseñas.

Fórmulas y Recalculo: Trabaje sin esfuerzo con fórmulas de Excel, con el beneficio adicional del recálculo automático cada vez que se edita una hoja, asegurando precisión y fiabilidad en la manipulación de datos.

Estilo de celdas: Personaliza la apariencia de celdas individuales ajustando estilos de fuente, tamaños, patrones de fondo, bordes y alineación, mejorando la presentación visual de tus documentos Excel.

Amplia Gama de Formatos de Documentos: Con soporte para diversos formatos, incluidos XLS, XLSX, XLST, XLSM, CSV y TSV, IronXL capacita a los desarrolladores para manejar datos en una multitud de escenarios con facilidad y eficiencia.

Ahora, empecemos por instalar IronXL.

Paso 1: Instale la biblioteca IronXL

El primer paso es instalar la biblioteca IronXL. Ejecute el siguiente comando para instalar IronXL en el símbolo del sistema.

pip install IronXL
python
PYTHON

Paso 2: Cargar el libro de Excel

El siguiente paso es cargar el archivo Excel. Vamos a utilizar el siguiente archivo de Excel para este tutorial.

Cómo importar un archivo de Excel en una tabla de base de datos usando Python: Figura 1 - Ejemplo de archivo de Excel de entrada

El siguiente código cargará el archivo Excel existente en memoria.

from ironxl import *     # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024";
workbook = WorkBook.Load("sample_excel.xlsx")
python
PYTHON

El fragmento de código Python anterior demuestra la carga de un libro de Excel llamado "sample_excel.xlsx" utilizando la biblioteca IronXL. En primer lugar, se importa el módulo Python necesario de IronXL. A continuación, se asigna una clave de licencia para validar el uso de la biblioteca. Puedes obtener tu clave de licencia gratuita desde el sitio web de IronXL. Por último, se emplea el método Cargar para abrir y cargar en memoria el libro de Excel especificado. Esto permite la posterior manipulación de su contenido mediante programación, como la lectura de datos, la modificación de los valores de las celdas o la aplicación de formato.

Paso 3: Seleccionar hoja de cálculo

Para seleccionar una hoja de trabajo en un libro de Excel utilizando IronXL, puede especificar el índice o el nombre de la hoja de trabajo.

worksheet = workbook.WorkSheets[0]
python
PYTHON

Esta línea selecciona la primera hoja de cálculo del libro Excel cargado y la asigna a la variable "hoja de cálculo", lo que permite realizar operaciones posteriores en esa hoja de cálculo específica dentro del libro. Esto cargará los datos de una hoja Excel a una variable de la hoja de cálculo.

Paso 4: Abrir la conexión a la base de datos

En este tutorial, estamos utilizando una base de datos SQLite en lugar de un servidor de base de datos MySQL. Para iniciar las operaciones de la base de datos, empezamos por establecer una conexión con la base de datos.

import sqlite3
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
python
PYTHON

La línea anterior establece una conexión con una base de datos SQLite llamada 'data.db'. Si la base de datos especificada no existe, se creará automáticamente. Esta conexión permite la interacción posterior con la base de datos SQLite, como la ejecución de consultas y la realización de operaciones de manipulación de datos.

Paso 5: Crear una tabla

El siguiente paso es crear una tabla en la base de datos, donde importaremos los datos de un fichero Excel. Para crear una tabla en la base de datos SQLite, puede ejecutar una sentencia SQL utilizando el objeto de conexión.

cursor = conn.cursor() // database objects
cursor.execute('''CREATE TABLE IF NOT EXISTS customer ( id Number,
            FirstName TEXT,
                    LastName TEXT,
                    Gender TEXT,
            Country TEXT,
            Age Number
                )''')
python
PYTHON

El fragmento de código anterior inicializa un objeto cursor para ejecutar comandos SQL dentro de la conexión a la base de datos SQLite. Crea una tabla llamada 'cliente' con las columnas 'id', 'Nombre', 'Apellido', 'Sexo', 'País' y 'Edad'. La tabla se crea si aún no existe, respetando los tipos de datos de columna especificados.

Paso 6: Importación de datos a la base de datos mediante Python

Ahora, vamos a insertar datos en nuestra tabla recién creada. Importaremos un archivo Excel e insertaremos sus datos en la base de datos SQLite.

for i in range(2, 11):
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
conn.commit()
python
PYTHON

El código anterior recorre las filas 2 a 10 de la hoja de cálculo de Excel, extrayendo los valores de las columnas A a F de cada fila. Estos valores se almacenan en una tupla, que representa los datos que se van a insertar en la tabla "cliente". A continuación, el cursor ejecuta un comando SQL INSERT, incorporando la tupla de valores a la tabla. Este proceso se repite para cada fila, importando los datos del archivo Excel a la base de datos SQLite. Finalmente, conn.commit() realiza la transacción, asegurando que los cambios se guarden y persistan en la base de datos.

Paso 7: Lectura de datos de la base de datos

Para comprobar si los datos se han insertado correctamente, puede leer los datos de la tabla "cliente" de la base de datos SQLite mediante una consulta SELECT. Por ejemplo:

cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print the rows
for row in rows:
    print(row)
conn.close()
python
PYTHON

El código anterior ejecuta una consulta SELECT en la tabla 'cliente' de la base de datos SQLite, recuperando todas las filas. Las filas obtenidas se almacenan en la variable 'rows' utilizando el método fetchall(). A continuación, cada fila se imprime de forma iterativa, mostrando los datos insertados en la tabla "cliente". Finalmente, la conexión a la base de datos se cierra utilizando el método close() para liberar recursos.

Cómo importar un archivo Excel a una tabla de base de datos usando Python: Figura 2 - Leer salida de base de datos

El Código Completo es como:

import sqlite3
from ironxl import *     # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024";
workbook = WorkBook.Load("sample_excel.xlsx")
# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS customer ( id Number,
                    FirstName TEXT,
                    LastName TEXT,
                    Gender TEXT,
                    Country TEXT,
                    Age Number
                )''')
cursor.execute("DELETE FROM customer")
for i in range(2, 11):
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
conn.commit()  
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print the rows
for row in rows:
    print(row)
conn.close()
python
PYTHON

Conclusión

En conclusión, este tutorial ha demostrado un enfoque automatizado para leer datos que desbloquea todo su potencial para los esfuerzos de gestión de datos. Aproveche la potencia de Python y IronXL para optimizar sus flujos de trabajo de tratamiento de datos e impulsar sus proyectos con confianza.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Cómo insertar filas en un archivo Excel utilizando Python
SIGUIENTE >
Cómo editar archivos Excel en Python

¿Listo para empezar? Versión: 2025.5 acaba de salir

Ver licencias >