
Java Excel
Publicado por Fer (1 intervención) el 24/03/2016 19:22:35
HOLA !!!
Tengo un código que lee un archivo excel y lo muesta en un jtable en netbeans con un método llamado Importar.
Ahora quiero saber como le hago para comparar 2 columnas del archivo excel y mostrar solamente los datos duplicados de dichas columnas; en el método exportar, para que me genere un archivo excel pero con solo una columna de los datos duplicados en las 2 columnas.
Mi clase Modeloexcel es:
Tengo un código que lee un archivo excel y lo muesta en un jtable en netbeans con un método llamado Importar.
Ahora quiero saber como le hago para comparar 2 columnas del archivo excel y mostrar solamente los datos duplicados de dichas columnas; en el método exportar, para que me genere un archivo excel pero con solo una columna de los datos duplicados en las 2 columnas.
Mi clase Modeloexcel es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
public class ModeloExcel {
Workbook wb;
public String Importar(File archivo, JTable tablaD){
String respuesta="No se pudo realizar la importación.";
DefaultTableModel modeloT = new DefaultTableModel();
tablaD.setModel(modeloT);
try {
wb = WorkbookFactory.create(new FileInputStream(archivo));
Sheet hoja = wb.getSheetAt(0);
Iterator filaIterator = hoja.rowIterator();
int indiceFila=-1;
while (filaIterator.hasNext()) {
indiceFila++;
Row fila = (Row) filaIterator.next();
Iterator columnaIterator = fila.cellIterator();
Object[] listaColumna = new Object[5];
int indiceColumna=-1;
while (columnaIterator.hasNext()) {
indiceColumna++;
Cell celda = (Cell) columnaIterator.next();
if(indiceFila==0){
modeloT.addColumn(celda.getStringCellValue());
}else{
if(celda!=null){
switch(celda.getCellType()){
case Cell.CELL_TYPE_NUMERIC:
listaColumna[indiceColumna]= (int)Math.round(celda.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
listaColumna[indiceColumna]= celda.getStringCellValue();
break;
case Cell.CELL_TYPE_BOOLEAN:
listaColumna[indiceColumna]= celda.getBooleanCellValue();
break;
default:
listaColumna[indiceColumna]=celda.getDateCellValue();
break;
}
}
}
}
if(indiceFila!=0)modeloT.addRow(listaColumna);
}
respuesta="Importación exitosa";
} catch (Exception e) {
}
return respuesta;
}
public String Exportar(File archivo, JTable tablaD){
String respuesta="No se realizo con exito la exportación.";
int numFila=tablaD.getRowCount();
int numColumna=tablaD.getColumnCount();
if(archivo.getName().endsWith("xls")){
wb = new HSSFWorkbook();
}else{
wb = new XSSFWorkbook();
}
Sheet hoja = wb.createSheet("Prueba");
try {
for (int i = -1; i < numFila; i++) {
Row fila = hoja.createRow(i+1);
for (int j = 0; j < 2; j++) {
Cell celda = fila.createCell(j);
if(i==-1 ){
celda.setCellValue(String.valueOf(tablaD.getColumnName(j)));
}else{
celda.setCellValue(String.valueOf(tablaD.getValueAt(i,j)));
}
wb.write(new FileOutputStream(archivo));
}
}
respuesta="Exportación exitosa.";
} catch (Exception e) {
}
return respuesta;
}
}
Valora esta pregunta


0