URGENCIA!!!!!!! Problema escribir en excel
Publicado por Carlos (1 intervención) el 15/11/2015 17:35:07
Tengo un archivo .xls , donde hay una columna con datos (9000 y pico filas), a la par, tengo un directorio con archivos (.src, que son como texto), entonces quiero ir leyendo cada uno de los archivos del directorio e ir buscando si cada uno de los archivos contiene algun string del .xls. Esto, debo guardarlo en un excel, tal que, me diga (T1 del .xls, se encuentra en el l archivo 1.src 2.src, etc..) Me lo hace todo bien, pero no se por qué en el excel que genero se me generan filas vacias a saco..
try{
File exlFile = new File("C:\\Users\\Roptex\\Desktop\\write_test.xls");
WritableWorkbook writableWorkbook = Workbook.createWorkbook(exlFile);
Workbook worbook1= Workbook.getWorkbook(new File(args));
Sheet sheet1 = worbook1.getSheet(0);
WritableSheet writableSheet1 = writableWorkbook.createSheet(
"Signals Calls", 0);
WritableSheet writableSheet2 = writableWorkbook.createSheet(
"Makros Calls",1);
int i=0;
Label Cabecera1=new Label(0,0,"Signal");
Label Cabecera2=new Label(1,0,"Where's it?");
File folder = new File(args2);
File[] listOfFiles = folder.listFiles();
File makros = new File(args3);
File[] listOfFiles2 = makros.listFiles();
writableSheet1.addCell(Cabecera1);
writableSheet1.addCell(Cabecera2);
String celda="";
celda=sheet1.getCell(0, 0).getContents();
srcLine=" ";
boolean detected=false;
while(i<sheet1.getRows()){
celda=sheet1.getCell(0, i).getContents();
int k=1;
for(int j=0;j<listOfFiles.length;j++){
detected=false;
FileReader fr=new FileReader(listOfFiles[j].getPath());
br=new BufferedReader(fr);
srcLine=br.readLine();
while (srcLine!=null&&detected==false){
if (srcLine.contains(celda)) {
Label add1=new Label(0,i+1,celda);
Label add=new Label(k,i+1,listOfFiles[j].getName());
if (add1!=null && add!=null){
writableSheet1.addCell(add);
writableSheet1.addCell(add1);
}
detected=true;
try{
Thread.sleep(500);//1sec
}catch(InterruptedException ex){
ex.printStackTrace();
}
k++;
}
srcLine=br.readLine();
}
}
}
writableWorkbook.write();
writableWorkbook.close();
} catch (IOException e) {
e.printStackTrace();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
}
}
}
He puesto un sleep, pq me daba la sensación que el bucle corría más que lo que tarda en escribir, pero que va. Me genera algo tal que asi:
T1 Folge1.src Folge2.src ..
T2 Folge21.src Folge7.src...
P5 Folge1.src Folge5.src...
Esos espacios entre medio?¿?¿,si lo hago en vez de en excel en .txt con BufferedWriter, pasa lo mismo.
Gracias de antemano
try{
File exlFile = new File("C:\\Users\\Roptex\\Desktop\\write_test.xls");
WritableWorkbook writableWorkbook = Workbook.createWorkbook(exlFile);
Workbook worbook1= Workbook.getWorkbook(new File(args));
Sheet sheet1 = worbook1.getSheet(0);
WritableSheet writableSheet1 = writableWorkbook.createSheet(
"Signals Calls", 0);
WritableSheet writableSheet2 = writableWorkbook.createSheet(
"Makros Calls",1);
int i=0;
Label Cabecera1=new Label(0,0,"Signal");
Label Cabecera2=new Label(1,0,"Where's it?");
File folder = new File(args2);
File[] listOfFiles = folder.listFiles();
File makros = new File(args3);
File[] listOfFiles2 = makros.listFiles();
writableSheet1.addCell(Cabecera1);
writableSheet1.addCell(Cabecera2);
String celda="";
celda=sheet1.getCell(0, 0).getContents();
srcLine=" ";
boolean detected=false;
while(i<sheet1.getRows()){
celda=sheet1.getCell(0, i).getContents();
int k=1;
for(int j=0;j<listOfFiles.length;j++){
detected=false;
FileReader fr=new FileReader(listOfFiles[j].getPath());
br=new BufferedReader(fr);
srcLine=br.readLine();
while (srcLine!=null&&detected==false){
if (srcLine.contains(celda)) {
Label add1=new Label(0,i+1,celda);
Label add=new Label(k,i+1,listOfFiles[j].getName());
if (add1!=null && add!=null){
writableSheet1.addCell(add);
writableSheet1.addCell(add1);
}
detected=true;
try{
Thread.sleep(500);//1sec
}catch(InterruptedException ex){
ex.printStackTrace();
}
k++;
}
srcLine=br.readLine();
}
}
}
writableWorkbook.write();
writableWorkbook.close();
} catch (IOException e) {
e.printStackTrace();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
}
}
}
He puesto un sleep, pq me daba la sensación que el bucle corría más que lo que tarda en escribir, pero que va. Me genera algo tal que asi:
T1 Folge1.src Folge2.src ..
T2 Folge21.src Folge7.src...
P5 Folge1.src Folge5.src...
Esos espacios entre medio?¿?¿,si lo hago en vez de en excel en .txt con BufferedWriter, pasa lo mismo.
Gracias de antemano
Valora esta pregunta


0