Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Java] Scrivere output su file xls

    Salve gente, ho bisogno di un aiuto/consiglio.
    Ho realizzato un programmino che legge una serie di file excel di una data direcoroty, estrae alcune informazioni e le elabora.
    Fin qui nessun problema.

    Ora dovrei stampare l'output invece che a video, su un file excel e qui arrivano i problemi .

    Ho scritto questo codice che genera correttamente il file xls però non riesco a popolarlo con le info che voglio.
    Ecco il metodo:
    codice:
    private static void extractXLS() throws FileNotFoundException, IOException {
    		
    			FileOutputStream fos = new FileOutputStream(
    					new File("C://.../summary.xls"));
    		            
    		    //Creo un Workbook e poi un foglio di lavoro
    		    HSSFWorkbook wbO = new HSSFWorkbook();
    		    HSSFSheet sheetO = wbO.createSheet("Work Package Time Report");
    		    
    		    //Creo la prima riga in cui andranno i nomi dei campi 
    		    HSSFRow rowO0 = sheetO.createRow(0);
    		    
    		    //Setto il nome dei campi della prima riga
    		    rowO0.createCell(0).setCellValue("KEY");
    		    rowO0.createCell(1).setCellValue("TOT ORE");
    		    rowO0.createCell(2).setCellValue("UTENTI");
    		     
    		    fos.flush();
    		    //Scrivo quanto fatto sull'output
    		    wbO.write(fos);
    	}
    Con questo codice ho creato il file xls, il foglio di lavoro e ho scritto il valore di 3 celle nella prima riga.
    Ora dovrei stampare nelle successive righe le info stampate a video riguardandi solo l'ultimo file (dato ke contiene il riassunto dei file precedenti).

    Il main che scansiona tutti i file xls è il seguente:
    codice:
    public static void main(String args[]) throws IOException {
    		//Impostazione stream di input
    		InputStreamReader input = new InputStreamReader (System.in);
    		BufferedReader tastiera = new BufferedReader (input);
    		//Variabile che conterrÃ_ il path name inserito dall'utente
    		String pathName = new String();
    		System.out.print("Inserisci percorso: ");
    		pathName = tastiera.readLine();
    		//Directory contenente tutti i file .xls da elaborare
    		File mainDir = new File(pathName);
            //Filtro sui file .xls
    		File files[] = mainDir.listFiles(new FilenameFilter(){
    			@Override
    			public boolean accept (File dir, String name){
    				return name.substring(name.lastIndexOf(".") + 1).equals("xls");
    			}
    		});
            //Per tutti i file della directory
    		for (int i=0; i<files.length; i++){
    			File file = files[i];
            	//Metodo che esegue delle operazioni sui file
            	elaboraFile(file);
            } 
          extractXLS();   
    	}
    Ho usato le librerie POI.

    Si accettano consigli su come operare....

  2. #2
    L'errore sta in queste due righe di codice :
    codice:
     fos.flush();
    //Scrivo quanto fatto sull'output
    wbO.write(fos)
    Prova a cambiarle così:
    codice:
    //Scrivo quanto fatto sull'output
    wbO.write(fos)
     fos.flush();
    fos.close();
    In quanto I poi di apache usano dei buffered stream che quindi vengono scritti completamente solo quando chiudi lo stream.
    Ciao.

  3. #3
    Io però sul file xls non voglio scrivere l'intero output stampato a video, ma solo il contenuto dell'ultimo file analizzato (visto che contiene il totale dei file precedenti).
    Come potrei fare?

  4. #4
    Consigli?

  5. #5
    Originariamente inviato da francesco.muia
    L'errore sta in queste due righe di codice :
    codice:
     fos.flush();
    //Scrivo quanto fatto sull'output
    wbO.write(fos)
    Prova a cambiarle così:
    codice:
    //Scrivo quanto fatto sull'output
    wbO.write(fos)
     fos.flush();
    fos.close();
    In quanto I poi di apache usano dei buffered stream che quindi vengono scritti completamente solo quando chiudi lo stream.
    Ciao.
    Non cambia nulla.....

  6. #6
    Ho risolto la questione, quindi questa discussione può essere anche eliminata....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.