En este ejercicio se van a utilizar importaciones y exportaciones de los datos de documentos Excel, para recuperar y extraer los datos masivos.

Para ello se ha creado una aplicación web de contabilidad en un supuesto práctico.

En primer lugar hay que instalar el Nuget EPPlus, para manejar las hojas de calculo Excel en la aplicación. Para poder realizar operaciones con la gran cantidad de datos que se van manejar, se debe también agregar el Nuget EntityFramework Plus.

EPPLUSNUGGET
Nuget EPPlus
EFCOREPLUS
Nuget EntityFramework Plus

Se define en el proyecto la clase modelo con los datos con los datos de contabilidad.

CONTABILIDADMODEL
Modelo Contabilidad

Es importante indicar con la etiqueta [DatabaseGenerated(DatabaseGeneratedOption.None)]», que cuando EntityFramework trabaje con el contexto de la Base de datos , no se generen los id con valor nulo, cuando se vayan a importar los datos del documento Excel.

En la siguiente clase es donde se incluyen las operaciones CRUD, que manipularan de manera masiva el conjunto de datos que utiliza la aplicación.

CLASEREPOSITORY
Repositorio de métodos de manipulación de datos Masivos.

En el controlador de Contabilidades, se recuperan de la Base de datos, los datos de contabilidad en la acción Índex.

CONTRORLLERINDEX
Acción Índex en el Controlador.

Si se desea exportar los datos de contabilidad a un fichero Excel, se tendrán que seguir los siguientes pasos:

  1. Si no se ha instalado el Nuget de EP Plus, habría que instalarlo.
  2. Crear un método en el controlador que genere la hoja de cálculo Excel, con los datos de contabilidad de la colección de los datos de contabilidad.
METODOEXPORTAREXCEL
Método Generación Excel con datos de una colección.

Para conseguir la estructura de datos, que permite cargar los datos de la colección a una tabla de un Excel, es muy importante realizar los siguientes pasos:

Lo primero que hay que hacer es convertir la colección a una DataTable. Con la siguiente clase de extensión se consigue convertir la colección de «contabilidades» a dicha estructura de datos, mediante el siguiente método:

EXTENSIONDATATABLE
Extensión DataTable.

Seguidamente hay que recuperar un array de bits para utilizarlos en el front y generar el Excel pasándole los bytes, que se han obtenido del método del paso previo al fichero, para que reconstruya la información en la hoja de cálculo.

AJAXMETODOGENERAREXCEL
Llamar al método que genera el Excel con Ajax.

Se descarga el Excel como un link donde se le pasan los bytesX64, que se utilizan para generar el Excel con los datos.

LINKDESCARGAEXCEL
Front de descarga para el Excel.

Para importar los datos de un documento Excel, se ha utilizado el siguiente método, que permite recuperar los datos de la hoja de cálculo Excel a una colección de contabilidades:

IMPORTAREXCELMETODO
Método importar Excel.

En la acción que se encarga de realizar la acción de importar datos, se va a llamar al método que nos devuelve la colección de las cuentas que hay en la hoja de calculo Excel.

En la misma acción hay que llamar a los métodos que eliminan de forma masiva los datos, que había en la base de datos, para poder insertar los nuevos datos que se acaban de importar .

Estas operaciones se realizan gracias a los métodos «BulkInsertAsync» y «BulkDeleteAsync» que se llaman desde la clase que opera con la Base de datos.

ACCIONIMPORTAREXCEL
Acción Importar datos de un documento Excel.
calidad2
Método BulkDeleteAsync.
calidad3
Método BulkInsertAsync.

Por último se va a modificar masivamente los saldos de las cuentas de contabilidad:

  1. En la vista Índex, se dispondrá del formulario para introducir el incremento de los saldos de las cuentas.
FORMMODIFICARSALDO
Formulario para incrementar el salario de las cuentas.

En la acción se va a utilizar el método, que realiza la modificación de los datos de las cuentas en la Base de datos, utilizando la colección de contabilidad y el incremento del sueldo que van a tener.

calidad1
Acción Modificar Saldos de las cuentas.

El método que realiza la operación de modificar el saldo de las cuentas, utiliza el método «BulkUpdateAsync», para llevar a cabo el incremento del saldo de las cuentas de la siguiente manera:

TAREA MODIFICAR SALDOS CUENTAS
Método modificación datos masivos.

Autor/a: Enrique García-Palacios Blasco

Curso: Desarrollo Web Full Stack + MultiCloud con Azure y AWS

Centro: Tajamar

Año académico: 2022-2023

Código / recursos utilizados / Otros datos de interés:

GitHub: https://github.com/Enriquegpb/MvcEFGestionDatosMasivosExcel.git

LinkedIn: https://www.linkedin.com/in/enrique-garcia-palacios-blasco/

Leave a Comment

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.