Django Excel: Exportación e Importación de Datos en Excel con Django

Django Excel: Exportación e Importación de Datos en Excel con Django

Django es un framework web de Python que proporciona una amplia gama de funciones para el desarrollo de aplicaciones web. Una de estas funciones es la capacidad de exportar e importar datos a formatos de archivo comunes, como CSV y Excel.

En este tutorial, veremos cómo exportar e importar datos en Excel con Django.

Requisitos

Para seguir este tutorial, necesitarás:

  • Una instalación de Python 3
  • Django instalado
  • Un editor de código

Instalación de la librería django-import-export

Para exportar e importar datos en Excel con Django, utilizaremos la librería django-import-export. Esta librería proporciona una forma sencilla de exportar e importar datos de modelos de Django a formatos de archivo comunes.

Para instalar la librería, ejecuta el siguiente comando en tu terminal:

pip install django-import-export

Creando un proyecto Django

Para comenzar, crearemos un nuevo proyecto Django.

django-admin startproject my_project

Activando la librería django-import-export

Para activar la librería django-import-export, agrega la siguiente línea a tu archivo settings.py:

Python
INSTALLED_APPS = [
    ...
    'import_export',
]

Creando un modelo

Para exportar e importar datos, primero necesitamos crear un modelo de Django. Este modelo definirá la estructura de los datos que queremos exportar o importar.

En este ejemplo, crearemos un modelo llamado Producto:

Python
# models.py

from django.db import models

class Producto(models.Model):
    nombre = models.CharField(max_length=255)
    precio = models.DecimalField(max_digits=10, decimal_places=2)

    def __str__(self):
        return self.nombre

Migrando el modelo

Una vez que hemos creado nuestro modelo, necesitamos migrar los cambios a nuestra base de datos. Para ello, ejecutamos los siguientes comandos:

python manage.py makemigrations
python manage.py migrate

Creando un recurso de exportación

Un recurso de exportación es un objeto que define cómo exportar datos de un modelo de Django. Para crear un recurso de exportación, creamos una clase que hereda de ImportExportModelResource.

En este ejemplo, crearemos un recurso de exportación llamado ProductoResource:

Python
# resources.py

from import_export import resources

class ProductoResource(resources.ModelResource):
    class Meta:
        model = Producto
        fields = ('nombre', 'precio')

Registrando el recurso de exportación

Para registrar el recurso de exportación, agregamos la siguiente línea a nuestro archivo admin.py:

Python
# admin.py

from .resources import ProductoResource

admin.site.register(Producto, ProductoResource)

Exportando datos

Ahora que hemos creado un recurso de exportación, podemos exportar datos de nuestro modelo.

Para exportar datos, podemos usar la función export_to_excel(). Esta función toma como argumentos el nombre del archivo de salida y el recurso de exportación.

En este ejemplo, exportaremos los datos de nuestro modelo a un archivo llamado productos.xlsx:

python manage.py export_to_excel productos.xlsx ProductoResource

Esto creará un archivo llamado productos.xlsx que contiene los datos de nuestro modelo.

Importando datos

Para importar datos a nuestro modelo, podemos usar la función import_from_excel(). Esta función toma como argumentos el archivo de entrada y el recurso de exportación.

En este ejemplo, importaremos los datos de un archivo llamado productos.xlsx:

python manage.py import_from_excel productos.xlsx ProductoResource

Esto importará los datos del archivo productos.xlsx a nuestro modelo.

Resumen

En este tutorial, hemos visto cómo exportar e importar datos en Excel con Django.

Para exportar datos, utilizamos la función export_to_excel(). Esta función toma como argumentos el nombre del archivo de salida y el recurso de exportación.

Para importar datos, utilizamos la función import_from_excel(). Esta función toma como argumentos el archivo de entrada y el recurso de exportación.

Para obtener más información sobre la exportación e