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

    Excel Java problema interi

    Salve a tutti
    ho un problemino con java da sbattere la testa al muro
    Sto leggendo un excel tramite ODBC con linguaggio Java
    tramite il listato che posto giù:

    //-------------------------------------------------------------------
    public void takeValidFields(String filename) throws SQLException {
    Connection con=null;
    Statement state=null;
    String query="";
    String tmp="";
    String database="jdbcdbc: Driver={Microsoft Excel Driver (*.xls)};DBQ=" + filename.trim() + ";DriverID=22;READONLY=true}";

    //lo spazio tra odbc e Driver l'ho messo per evitare l'emoticons

    con = DriverManager.getConnection( database ,"","");
    query = "select * from ["foglio1$"]";
    state = con.createStatement();
    ResultSet rs = state.executeQuery( query );
    Vector rows = new Vector(); //righe
    ResultSetMetaData rsmd = rs.getMetaData();
    while ( rs.next())
    {
    Vector thisRow = new Vector(); //vettore temporaneo per i dati
    for (int j=1; j<=rsmd.getColumnCount(); j++){
    tmp=rs.getString(j);
    thisRow.add( tmp );
    }
    rows.add(thisRow); //aggiunge il vettore temporaneo al vettore sopra
    }
    System.out.println(rows);

    //------------------------------------------------

    Solo che alla fine della scansione del foglio excel, praticamente gli interi me li tratta come se fossero celle vuote e quindi me li imposta a null.
    ho pensato fosse xche le celle erano impostate come celle numeriche, quindi ho impostato prima come celle testo e poi come celle generiche, ma il risultato non cambia.
    Non posso mettere getInt xche non so esattamente dove si possano trovare tali interi(o anche double)....sono su questo problema da un paio di giorni e non riesco a trovare x adesso una via d'uscita...
    come java virtual machine uso la jdk1.6.0_06.

    Vi prego qlq consiglio mi può togliere d'impaccio.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Excel Java problema interi

    Originariamente inviato da schumy2000
    Non posso mettere getInt xche non so esattamente dove si possano trovare tali interi(o anche double)
    Allora usa getObject() e il reference lo memorizzi nel vettore della riga.
    Cosa ci farai poi in seguito con quel "vettore di vettori" non lo so, ovviamente. Quello che potrai fare, anche in seguito, è un test con l'operatore instanceof per determinare se l'oggetto è un Integer, Double o altro (e in tal caso puoi fare un downcast al tipo specifico).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ciao andbin
    purtroppo ho già provato con getObject e mi ha preso ugualmente null...

    d'altronde ho provato in un altro foglio excel di test e gli interi stavolta me li prendeva senza problemi....non capisco xche proprio quel documento non gli piace affatto....
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non è che il file di Excel ha delle protezioni?

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    a ke tipo di protezioni ti riferisci LeleFT?

    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da schumy2000
    a ke tipo di protezioni ti riferisci LeleFT?

    Protezione in lettura sul foglio di Excel.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    no non ci sono blocchi in lettura anche xche gli altri campi stringa li legge tranquillamente.
    Da poco ho scoperto che se modifico il campo dell'excel mettendo invece del numero secco (es. 0,65900) un numero più un carattere (es. 0,65900|) alla fine me lo legge come "stringa" e quindi lo memorizza e lo stampa in out. (Misteri dell'informatica )
    Se sapete qlc metodo per modificare una specifica cella in tutti i fogli di lavoro x me sarebbe un problema risolto....

    a tutti
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Se vuoi leggerlo come stringa allora è sufficiente anteporre al numero il carattere apostrofo ( ' ). In questo modo Excel memorizza il numero come stringa.
    codice:
    Numero: 1234
    Stringa: '1234
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    si infatti volevo proprio intraprendere questa azione e vi chiedevo se era possibile modificare tutte le celle di una specifica colonna in tutti i fogli di lavoro del doc. excel..

    (so che sono off-topic x il discorso dell'excel perdonatemi ma siccome la discussione è iniziata qui.....)

    grazie ancora.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

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.