Buenos Días/Tardes.
Mi problema parece ser muy sencillo, pero no lo puedo resolver. Tengo un método el cual exporta (exitosamente) los datos de un jtable que lleno de una BD a un Excel, el problema es que si bien me exporta todos los datos al Excel, no los separa por celdas, más bien, junta todo en una celda... y no encuentro la solución. Les dejo el código para que verifiquen.
Código que llena de información de un jTable:
Código PHP:
public String [][] obtenerInformacion()
{
int numFilas = model.getRowCount();
int numColumnas = model.getColumnCount();
boolean siCapturedTheTitles = false;
String matrix[][] = new String [numFilas + 1][numColumnas];
for(int rowIndex = 0; rowIndex < numFilas; rowIndex++)
{
for(int colIndex = 0; colIndex < numColumnas; colIndex++)
{
if(!siCapturedTheTitles)
{
matrix[0][colIndex] = jTable1.getColumnName(colIndex);
siCapturedTheTitles = (rowIndex > 0)?true:false;
}
matrix [rowIndex + 1][colIndex] = (String) model.getValueAt(rowIndex, colIndex);
}
}
return matrix;
}
Código que Exporta el jTable a Excel:
Código PHP:
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int resultado = fileChooser.showSaveDialog(this);
if(resultado == JFileChooser.CANCEL_OPTION)
{
return;
}
File archivo = fileChooser.getSelectedFile();
try
{
PrintWriter salida = new PrintWriter(new FileWriter(archivo + ".csv"));
String data[][] = obtenerInformacion();
for(int i = 0; i < data.length; i++)
{
salida.print(data[i][0]);
for(int j = 1; j < data[i].length; j++)
{
String word = data[i][j];
if(word != null)
{
salida.print("," + word);
}
else
{
salida.print(",");
}
}
salida.println();
}
salida.close();
}
catch (IOException io)
{
}
Si no me equivoco, el problema esta en la línea "salida.print("," + word);", me dijeron que la coma era el identificador de una celda al momento de imprimir una salida, pero en vez de eso, me inserta la coma en la misma celda.
Como debería imprimir: |Titulo 1|Titulo 2| Titulo 3|
Como imprime: |Titulo1,Titulo2,Titulo3|
¿Creen que me podrían ayudar? Muy agradecido de antemano cualquier respuesta de su parte.