Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [Java]File Excel

    Salve a tutti ho un problemino:

    ho bisogno di leggere un file excel e trasformare ogni riga in una stringa, qualcuno ha qualche idea?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Sì, usare il pulsante di ricerca.

    http://forum.html.it/forum/search.ph...by=&sortorder=
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    eh... ma peccato che l abbia fatto, ma non abbia trovato nulla che mi fosse d aiuto in quanto in tutti i thread ottenuti come risultato per la maggior parte viene spiegato come scrivere SU un file excel, mentre a me servere LEGGERE da un excel e trasformare ogni riga in una stringa di caratteri (o come alternativa sapere come distinguere le varie celle l una dall altra). Se vi è possibile vi chiedo gentilmente di non rimandarmi ad altri link perchè sono a lavoro e qui abbiamo accesso solo a determinati siti.

    Esempio se io in un file xls ho:
    _____________________________
    |ciao|sono|ciccio|124785|a1b2c3|
    _____________________________

    vorrei ottenere la stringa:

    ciaosonociccio124785a1b2c3

    Ora io ho improvvissato questo codice:

    String path = new String();
    String pathWrite = new String();
    String recordLetto = new String();
    path = "C:\\Documents and Settings\\Documenti\\documentazione\\propostaMigr. xls";
    pathWrite = "C:\\Documents and Settings\\Documenti\\prova.txt";
    BufferedReader fileqr = new BufferedReader(new FileReader(path));
    BufferedWriter fileWr= new BufferedWriter(new FileWriter(pathWrite));


    while((recordLetto = fileqr.readLine()) != null )
    {
    fileWr.write(recordLetto);
    }
    fileqr.close();
    ma purtroppo ottengo stringhe di caratteri totalmente incomprensibili

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    allora hai cercato male

    http://forum.html.it/forum/showthrea...ighlight=Excel

    se segui il thread, in un mio intervento punto ad un sito con le jxl api per manipolare file Excel, leggere, scrivere e creare. Su quel sito trovi diversi esempi.

    Una nota a parte: come ca$$0 fate a lavorare in un posto dove vi chiedono di programmare e non avete accesso pieno ad internet? Ai vostri capi piace proprio che voi buttiate via tempo (e quindi denaro) a reinventare la ruota ogni volta che non riuscite a raggiungere il sito con la soluzione già pronta... masochismo all'italiana.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Originariamente inviato da Andrea1979
    allora hai cercato male

    http://forum.html.it/forum/showthrea...ighlight=Excel

    se segui il thread, in un mio intervento punto ad un sito con le jxl api per manipolare file Excel, leggere, scrivere e creare. Su quel sito trovi diversi esempi.

    Una nota a parte: come ca$$0 fate a lavorare in un posto dove vi chiedono di programmare e non avete accesso pieno ad internet? Ai vostri capi piace proprio che voi buttiate via tempo (e quindi denaro) a reinventare la ruota ogni volta che non riuscite a raggiungere il sito con la soluzione già pronta... masochismo all'italiana.
    Che dirti: hai ragione, ma purtroppo sono un mero dipendente che non ha nessuna voce in capitolo. Cmq perdomani ma purtroppo come ti ho gia detto il sito che hai linkato la per jexcel è uno di tanti siti a cui non posso accedere, quindi non mi resta che sperare in una risposta scritta tramite post :S

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    se mi dai una mezz'ora vedo che posso fare. Poi l'api te la scarichi tu. Devo consegnare una cosa, poi ti scrivo un pezzo di codice.

    EDIT

    codice:
    import jxl.*;
    import java.io.*;
    
    public class ReadToText {
      public static void main (String[] args) throws Exception {
        String buff = "";
        //apro il file
        Workbook workbook = Workbook.getWorkbook(new File("C:/Documents and Settings/Andrea/Desktop/demofile.xls"));
        //prendo il primo foglio
        Sheet sheet = workbook.getSheet(0);
        boolean flag1 = true;
        boolean flag2 = true;
        int riga = 0;
        Cell currentCell;
        while (flag1) { //leggo per righe
          int cella = 0;
          while (flag2) {  //leggo le celle
            currentCell = sheet.getCell(cella, riga);
            flag2 = currentCell.getContents()== "" ? false : true;
            buff += currentCell.getContents();
            cella++;
          }
          buff += "\n";
          cella = 0;
          riga++;
          flag2 = true;
          currentCell = sheet.getCell(cella, riga);
          flag1 = currentCell.getContents() == "" ? false : true;
        }
        
        BufferedWriter br = new BufferedWriter(new FileWriter("C:/Documents and Settings/Andrea/Desktop/EXCEL.TXT"));
        br.write(buff);
        br.flush();
        br.close();
      }
    }
    Apre un file excel, lo legge per riga e colonna: se trova una cella vuota salta alla riga successiva e si ferma se la prima cella di una riga è vuota. Il tutto viene messo, riga a riga, in un file di testo.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Originariamente inviato da Andrea1979
    se mi dai una mezz'ora vedo che posso fare. Poi l'api te la scarichi tu. Devo consegnare una cosa, poi ti scrivo un pezzo di codice.

    EDIT

    codice:
    import jxl.*;
    import java.io.*;
    
    public class ReadToText {
      public static void main (String[] args) throws Exception {
        String buff = "";
        //apro il file
        Workbook workbook = Workbook.getWorkbook(new File("C:/Documents and Settings/Andrea/Desktop/demofile.xls"));
        //prendo il primo foglio
        Sheet sheet = workbook.getSheet(0);
        boolean flag1 = true;
        boolean flag2 = true;
        int riga = 0;
        Cell currentCell;
        while (flag1) { //leggo per righe
          int cella = 0;
          while (flag2) {  //leggo le celle
            currentCell = sheet.getCell(cella, riga);
            flag2 = currentCell.getContents()== "" ? false : true;
            buff += currentCell.getContents();
            cella++;
          }
          buff += "\n";
          cella = 0;
          riga++;
          flag2 = true;
          currentCell = sheet.getCell(cella, riga);
          flag1 = currentCell.getContents() == "" ? false : true;
        }
        
        BufferedWriter br = new BufferedWriter(new FileWriter("C:/Documents and Settings/Andrea/Desktop/EXCEL.TXT"));
        br.write(buff);
        br.flush();
        br.close();
      }
    }
    Apre un file excel, lo legge per riga e colonna: se trova una cella vuota salta alla riga successiva e si ferma se la prima cella di una riga è vuota. Il tutto viene messo, riga a riga, in un file di testo.
    ok grazie mille

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    64
    Originariamente inviato da Andrea1979
    se mi dai una mezz'ora vedo che posso fare. Poi l'api te la scarichi tu. Devo consegnare una cosa, poi ti scrivo un pezzo di codice.

    EDIT

    codice:
    import jxl.*;
    import java.io.*;
    
    public class ReadToText {
      public static void main (String[] args) throws Exception {
        String buff = "";
        //apro il file
        Workbook workbook = Workbook.getWorkbook(new File("C:/Documents and Settings/Andrea/Desktop/demofile.xls"));
        //prendo il primo foglio
        Sheet sheet = workbook.getSheet(0);
        boolean flag1 = true;
        boolean flag2 = true;
        int riga = 0;
        Cell currentCell;
        while (flag1) { //leggo per righe
          int cella = 0;
          while (flag2) {  //leggo le celle
            currentCell = sheet.getCell(cella, riga);
            flag2 = currentCell.getContents()== "" ? false : true;
            buff += currentCell.getContents();
            cella++;
          }
          buff += "\n";
          cella = 0;
          riga++;
          flag2 = true;
          currentCell = sheet.getCell(cella, riga);
          flag1 = currentCell.getContents() == "" ? false : true;
        }
        
        BufferedWriter br = new BufferedWriter(new FileWriter("C:/Documents and Settings/Andrea/Desktop/EXCEL.TXT"));
        br.write(buff);
        br.flush();
        br.close();
      }
    }
    Apre un file excel, lo legge per riga e colonna: se trova una cella vuota salta alla riga successiva e si ferma se la prima cella di una riga è vuota. Il tutto viene messo, riga a riga, in un file di testo.

    Salve a tutti ho un problema con questo codice che mi genera un eccezione precisamente:
    codice:
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
            at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:354)
    cioè mi legge la prima riga del file.xls che è di 5 colonne e poi esce....lo so perchè ho messo una stampa a video nel mezzo dei due cicli while....
    il compilatore mi segna errore su questa riga:

    codice:
          while (flag2) {  //leggo le celle
            currentCell = sheet.getCell(cella, riga);
    se qualcuno può darmi qualche chiarimento in proposito gliene sarei grato...anche perchè il codice mi sembra corretto e non capisco perchè generi l'eccezione.

  9. #9
    Ho provato il codice postato sopra che dovrebbe leggere un xls e trascriverlo su di un txt ma mi genera questa eccezione:


    Exception in thread "main" jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.jav a:116)
    at jxl.read.biff.File.<init>(File.java:127)
    at jxl.Workbook.getWorkbook(Workbook.java:221)
    at jxl.Workbook.getWorkbook(Workbook.java:198)
    at readtotext.ReadToText.main(ReadToText.java:18)


    qualcuno sa come mai?

  10. #10
    Naturalmente il path l'ho cambiato :-)

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.