[SOLUCIONADO] JExcel, con bucle para escribir.

Iniciado por NetJava, 23 Mayo 2011, 12:17 PM

0 Miembros y 1 Visitante están viendo este tema.

NetJava

Buenas,
Me he puesto a estudiar un poco la libr JExcel y me he encontrado con un problema al hacer un ejemplo... como casi siempre... XD

Código (java) [Seleccionar]

//Los import todos ok.
public class escribir {

private WritableWorkbook libro;
private WritableSheet hoja;
private int c = 0;

public escribir(){
try{
libro = Workbook.createWorkbook(new File("ejemplo.xls"));
hoja = libro.createSheet("Hoja1", 0);
}catch(Exception e){
JOptionPane.showMessageDialog(null,"Error Escribir/Constructor.","Message",JOptionPane.INFORMATION_MESSAGE);
}
}

public void escribircontenido(String dato){
try{

   Label label = new Label(0,c,dato);
   c+=1;
   hoja.addCell(label);
   libro.write();
   if(c == 9){libro.close();}

}catch(Exception e){
JOptionPane.showMessageDialog(null,"Error Escribir contenido.","Message",JOptionPane.INFORMATION_MESSAGE);
}
}
}


En otro lugar hay un bucle que va llamando al método "escribircontenido", pasando el valor a escribir y ya esta... debería de funcionar llenándome un excel con 10 valores, cada uno en una fila de una misma columna,  pero no es así... solo me escribe el primer valor en la posición (0,0) y ya esta. Debe ser algo simple, pero no caigo XD

Saludos y gracias

NetJava

Buenas gente,

El problema ya esta solucionado, pongo el ejemplo. Únicamente hay que tener en cuenta que si el bucle es de por ejemplo 90000, por algún motivo no furula...

Dejo el ejemplo que hice.

Código (java) [Seleccionar]


package PackExcel3;

import java.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.*;
import javax.swing.*;
import javax.swing.event.*;

import jxl.*;
import jxl.LabelCell; //Para leer de la celda, no es necesario hasta que no se lea del excel.
import jxl.Workbook.*;
import jxl.write.*;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableWorkbook.*;
import jxl.write.WritableSheet.*;;


public class interfaz extends JFrame implements ActionListener{

WritableWorkbook libro;
WritableSheet hoja;
GridBagConstraints constraint = new GridBagConstraints();
private JLabel jlbl_inf = new JLabel("Estado 0");
private JLabel jlbl_inf1 = new JLabel("Estado 1");
private JButton jbtn_comenzar = new JButton("Generar prueba 0");
private JButton jbtn_comenzar1 = new JButton("Generar prueba 1");

public interfaz(){
super("Ejem Excel 3");
definirventana();
definirelementos();
this.setVisible(true);
this.setSize(300, 200);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void definirventana(){
this.getContentPane().setLayout(new GridBagLayout());

constraint.gridx = 0;
constraint.gridy = 0;
constraint.gridwidth = 1;
constraint.gridheight = 1;
constraint.weightx = 1.0;
constraint.weighty = 1.0;
constraint.fill = GridBagConstraints.BOTH;
this.getContentPane().add(jbtn_comenzar, constraint);

constraint.gridx = 1;
constraint.gridy = 0;
constraint.gridwidth = 1;
constraint.gridheight = 1;
constraint.weightx = 1.0;
constraint.weighty = 1.0;
constraint.fill = GridBagConstraints.CENTER;
this.getContentPane().add(jlbl_inf, constraint);

constraint.gridx = 0;
constraint.gridy = 1;
constraint.gridwidth = 1;
constraint.gridheight = 1;
constraint.weightx = 1.0;
constraint.weighty = 1.0;
constraint.fill = GridBagConstraints.BOTH;
this.getContentPane().add(jbtn_comenzar1, constraint);

constraint.gridx = 1;
constraint.gridy = 1;
constraint.gridwidth = 1;
constraint.gridheight = 1;
constraint.weightx = 1.0;
constraint.weighty = 1.0;
constraint.fill = GridBagConstraints.CENTER;
this.getContentPane().add(jlbl_inf1, constraint);
}

private void definirelementos(){
this.jbtn_comenzar.addActionListener(this);
this.jbtn_comenzar1.addActionListener(this);
}

public void actionPerformed(ActionEvent ae){
if(ae.getSource() == jbtn_comenzar){
jlbl_inf.setText("Procesando 0");
crearWorkbook();
generar();
}
if(ae.getSource() == jbtn_comenzar1){
jlbl_inf1.setText("Procesando 1");
crearWorkbook();
generar1();
}
}

private void crearWorkbook(){
try{
libro = Workbook.createWorkbook(new File("Ejem3.xls"));
hoja = libro.createSheet("HEJEM", 0);
}catch(Exception e){

}
}

private void generar(){
try{
Label label = new Label(0, 0, "Ejem 3");
hoja.addCell(label);

for(int i = 1; i < 10; i++){
Number numero = new Number(0, i, i);
hoja.addCell(numero);
}

libro.write();
libro.close();
jlbl_inf.setText("Fin ejecución");
}catch(Exception e){

}
}

private void generar1(){
try{
for(int a = 0; a < 10; a++){
Label label = new Label(a, 0, "Colum "+a);
hoja.addCell(label);
for(int i = 1; i < 50000; i++){
Number numero = new Number(a, i, i);
hoja.addCell(numero);
}
}

libro.write();
libro.close();
jlbl_inf1.setText("Fin ejecución");
}catch(Exception e){

}
}

}