Operaciones masivas e importar datos Excel con .Net Core
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.
Se define en el proyecto la clase modelo con los datos con los datos de 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.
En el controlador de Contabilidades, se recuperan de la Base de datos, los datos de contabilidad en la acción Índex.
Si se desea exportar los datos de contabilidad a un fichero Excel, se tendrán que seguir los siguientes pasos:
- Si no se ha instalado el Nuget de EP Plus, habría que instalarlo.
- 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.
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:
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.
Se descarga el Excel como un link donde se le pasan los bytesX64, que se utilizan para generar el Excel con los datos.
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:
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.
Por último se va a modificar masivamente los saldos de las cuentas de contabilidad:
- En la vista Índex, se dispondrá del formulario para introducir el incremento de los saldos 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.
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:
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/