diff --git a/pom.xml b/pom.xml
index b693c34..0fe2887 100644
--- a/pom.xml
+++ b/pom.xml
@@ -133,6 +133,11 @@
poi-ooxml
5.2.0
+
+ commons-io
+ commons-io
+ 2.16.1
+
diff --git a/src/main/java/mx/gob/jumapacelaya/Application.java b/src/main/java/mx/gob/jumapacelaya/Application.java
index 185a08f..d95efaf 100644
--- a/src/main/java/mx/gob/jumapacelaya/Application.java
+++ b/src/main/java/mx/gob/jumapacelaya/Application.java
@@ -19,11 +19,6 @@ public class Application implements AppShellConfigurator {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
-
- DatabaseService databaseService = new DatabaseService();
- String archivo = "C:/Users/mramirezg/Documents/MRAMIREZG/Libro1 PRUEBA.xlsx";
-
- databaseService.insertarDesdeExcel(archivo);
}
}
diff --git a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
index c2a8fc1..7f2b8a0 100644
--- a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
+++ b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
@@ -7,6 +7,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.swing.plaf.PanelUI;
import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.sql.*;
import java.time.LocalDate;
import java.util.ArrayList;
@@ -230,14 +231,14 @@ public class DatabaseService {
}
- public void insertarDesdeExcel(String rutaArchivoExcel) {
+ public void insertarDesdeExcel(InputStream inputStream) {
String query = "INSERT INTO MTTOPROGRAMADOS (NOMEQUIPO, DEPARTAMENTO, MONITOR, TECLADO, MOUSE, " +
"REGULADOR, CPU, IMPRESORA, MINIPRINT, LAPTOP, ESCANER, FECHAPROG, TECNICOSMT, ESTADO) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
try (Connection connection = getConnection();
- FileInputStream file = new FileInputStream(rutaArchivoExcel);
- Workbook workbook = new XSSFWorkbook(file)) {
+ //FileInputStream file = new FileInputStream(rutaArchivoExcel);
+ Workbook workbook = new XSSFWorkbook(inputStream)) {
Sheet sheet = workbook.getSheetAt(0); // Primera hoja del archivo Excel
diff --git a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java
index 1443d26..e9ec58a 100644
--- a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java
+++ b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java
@@ -8,14 +8,19 @@ import com.vaadin.flow.component.html.H5;
import com.vaadin.flow.component.icon.Icon;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.notification.Notification;
+import com.vaadin.flow.component.notification.NotificationVariant;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.TextField;
+import com.vaadin.flow.component.upload.Upload;
+import com.vaadin.flow.component.upload.receivers.MemoryBuffer;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import mx.gob.jumapacelaya.models.PlanAnual;
+import mx.gob.jumapacelaya.services.DatabaseService;
+import java.io.InputStream;
import java.lang.reflect.Array;
import java.time.LocalDate;
import java.util.Arrays;
@@ -30,6 +35,7 @@ public class PlanAnualView extends VerticalLayout {
HorizontalLayout header = new HorizontalLayout();
H4 titulo = new H4();
H5 titulo1 = new H5();
+ DatabaseService databaseService = new DatabaseService();
public PlanAnualView() {
VerticalLayout headerLayout = new VerticalLayout();
@@ -50,6 +56,25 @@ public class PlanAnualView extends VerticalLayout {
headerLayout.add(titulo, titulo1);
+
+ // Componente UPLOAD para subir archivos
+ MemoryBuffer buffer = new MemoryBuffer();
+ Upload upload = new Upload(buffer);
+ upload.setAcceptedFileTypes(".xls", ".xlsx");
+ upload.setMaxFiles(1);
+ upload.setDropLabel(new com.vaadin.flow.component.html.Span("Arrastra un archivo Excel aquĆ o selecciona uno"));
+
+ upload.addSucceededListener(event -> {
+ try {
+ InputStream inputStream = buffer.getInputStream();
+ databaseService.insertarDesdeExcel(inputStream);
+ Notification.show("Archivo insertado correctamente").addThemeVariants(NotificationVariant.LUMO_SUCCESS);
+ } catch (Exception e) {
+ Notification.show("Error al insertar el archivo: " + e.getMessage()).addThemeVariants(NotificationVariant.LUMO_ERROR);
+ }
+ });
+
+
Grid planAnualGrid = new Grid<>();
planAnualGrid.addColumn(PlanAnual::getNumero).setHeader("No.");
planAnualGrid.addColumn(PlanAnual::getNomEquipo).setHeader("Equipo").setAutoWidth(true);
@@ -100,7 +125,7 @@ public class PlanAnualView extends VerticalLayout {
this.setPadding(false);
this.setMargin(false);
this.setSpacing(false);
- add(headerLayout, gridLayout);
+ add(headerLayout, gridLayout, upload);
}
private Icon getIcon(String value) {