Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480

    Problema formattazione celle foglio excel

    Ciao a tutti,
    sto esportando i dati di una jtable , alcuni di essi sono dichiarati int e quindi nella table contents ho impostato le colonne relative come type integer.
    A questo punto quando vado a formattare le celle relative del foglio excel, faccio così:
    codice:
     WritableCellFormat cellFormat3 = new WritableCellFormat(NumberFormats.INTEGER);
            cellFormat3.setBackground(Colour.BRIGHT_GREEN);
            cellFormat3.setAlignment(Alignment.CENTRE);
            cellFormat3.setVerticalAlignment(VerticalAlignment.CENTRE);
            cellFormat3.setBorder(Border.ALL, BorderLineStyle.THIN);
    e poi
    codice:
     /*Riempimento dati */
            for (int i = 1; i < tabellaMesi.getColumnCount(); i++) {
                for (int j = 0; j < tabellaMesi.getRowCount(); j++) {
                    ws1.addCell(new Label(i + 3, j + 5, tabellaMesi.getValueAt(j, i), cellFormat3));
                }
            }
    A questo punto mi da il seguente errore: incompatible types: Object can be converted to String
    qui:
    codice:
    ws1.addCell(new Label(i + 3, j + 5, tabellaMesi.getValueAt(j, i), cellFormat3));
    non capisco ..qualcuno può aiutarmi?

    Grazie

  2. #2
    E per la seconda volta ti consiglio di guardare il javadoc.
    Il costruttore di Label accetta come parametro una stringa e non un Object, cosa che invece ti restituisce getValueAt....

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ok il problema però è un altro:
    se io faccio così:
    codice:
     for (int i = 1; i < tabellaMesi.getColumnCount(); i++) {
                for (int j = 0; j < tabellaMesi.getRowCount(); j++) {
                    ws1.addCell(new Label(i + 3, j + 5, tabellaMesi.getValueAt(j, i).toString(), cellFormat3));
                }
            }
    sul foglio excel questi dati me li vede come testo e non come numeri e di conseguenza non posso fare operazioni numeriche sul contenuto di queste celle.

  4. #4
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Ok il problema però è un altro:
    se io faccio così:
    codice:
     for (int i = 1; i < tabellaMesi.getColumnCount(); i++) {
                for (int j = 0; j < tabellaMesi.getRowCount(); j++) {
                    ws1.addCell(new Label(i + 3, j + 5, tabellaMesi.getValueAt(j, i).toString(), cellFormat3));
                }
            }
    sul foglio excel questi dati me li vede come testo e non come numeri e di conseguenza non posso fare operazioni numeriche sul contenuto di queste celle.
    Bè se invece la prossima volta dici il vero,problema che riscontri allora sicuramente le risposte saranno più precise.
    Sempre leggendo il javaDoc per inserire un numero devi usare l'oggetto Number, attenzione esso prevede che passi al costruttore un int oppure un double

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ok ho risolto così, parsando solo i dati delle colonne che mi interessavano:
    codice:
     /*Riempimento dati */
            for (int i = 1; i < tabellaMesi.getColumnCount() - 1; i++) {
                for (int j = 0; j < tabellaMesi.getRowCount(); j++) {
                    int dato = Integer.parseInt(tabellaMesi.getValueAt(j, i).toString());
                    ws1.addCell(new Number(i + 3, j + 5, dato));
                }
            }

  6. #6
    Beh hai solo tolto il cellFormat.
    E' quello che ti creava il tipo di formattazione.
    E' stato lo stesso errore che ho fatto oggi io su un mio vecchio progetto.

    Ciao.
    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ho un altro problema di formattazione delle celle del foglio excel.
    Se faccio così:

    codice:
    int column1 = 1;
    ws1.setColumnView(column1, widthInPoints1);
    vado ad impostare la larghezza della colonna 1.

    Ma se io volessi formattare la dimensione di una singola cella appartenente alla colonna 1 non posso farlo ?
    Cioè una volta definta la larghezza di quella colonna, resta quella per tutte le righe di quella colonna.
    Se volessi invece che una sola riga di quella colonna avesse una larghezza differente e non quella impostata?
    E' possibile farlo?

    Grazie

  8. #8
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Ho un altro problema di formattazione delle celle del foglio excel.
    Se faccio così:

    codice:
    int column1 = 1;
    ws1.setColumnView(column1, widthInPoints1);
    vado ad impostare la larghezza della colonna 1.

    Ma se io volessi formattare la dimensione di una singola cella appartenente alla colonna 1 non posso farlo ?
    Cioè una volta definta la larghezza di quella colonna, resta quella per tutte le righe di quella colonna.
    Se volessi invece che una sola riga di quella colonna avesse una larghezza differente e non quella impostata?
    E' possibile farlo?

    Grazie
    In excel lo riesci a fare.... Secondo me no.... Quindi....
    Quello che eventualmente puoi fare è unire due o + celle (Sinceramente non so neanche se JExcelApi lo supporta)

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quindi non è possibile settare la dimensione di una singola cella.
    Quando si definisce la dimensione di una colonna , tutte le righe di quella colonna avranno obbligatoriamente la dimensione impostata per la colonna (stessa cosa per le righe ) ????
    Questa cosa dipende dalla libreria utilizzata, sia jexcelapi che apache poi ?

    Grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Quindi non è possibile settare la dimensione di una singola cella.
    Quando si definisce la dimensione di una colonna , tutte le righe di quella colonna avranno obbligatoriamente la dimensione impostata per la colonna (stessa cosa per le righe ) ????
    Questa cosa dipende dalla libreria utilizzata, sia jexcelapi che apache poi ?

    Grazie
    Scusate ma non ci sono i metodi merge() e unmerge() ???

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.