Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16

    Apache POI - Errore in Excel

    ciao. ecco il mio problema.
    uso la libreria POI per generare un file excel; in questo foglio di lavoro cambio il font da applicare alle celle (tutte) usando la classe HSSFCellStyle. al termine dell'elaborazione i dati ci sono tutti e sono giusti, ma nelle ultime celle non c'è il font definito da me.
    aprendo il file ricevo un messaggio di errore:
    Poichè è stato superato il numero massimo di tipi di carattere è possibile che sia stata modificata parte della formattazione del file. Provare a chiudere uno o più documenti e riprovare.
    non capisco cosa significhi; se cerco di uscire salvando vedo un altro messaggio di errore:
    Impossibile applicare altri tipi di carattere in questa cartella di lavoro,
    ma salva lo stesso. esco, riapro e non ci sono errori; applico il formato voluto alle celle rimaste scoperte e va tutto bene.
    qualche idea?

    grazie
    marco
    Marco

  2. #2
    Ciao, ho utilizzato POI un po' di tempo fa', ma provo a darti una mano lo stesso...

    il font lo applichi ad ogni singola cella?

    io l'avevo usato per formattare le date e dovevo formattare la singola cella con il formato che mi interessava.
    La vita sarebbe piu' facile se avessi il codice sorgente!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    eccomi qui.
    il codice è molto; ne metto una porzione dove si effettua la maggior parte del lavoro.
    fondamentalmente, scandisco un recordset traendone alcune informazioni. nel momento in cui attribuisco un valore ad una cella uso un'istanza di una mia classe per gestire diverse informazioni di stile (qui la variabile membro m_stilStrd). uso sempre le stesse variabili (ce ne sono 3 globali che rappresentano i tre stili diversi che uso); cambio solo quei valori che, di volta in volta, variano marginalmente, tipo la dimensione del font o il fatto che sia in grassetto o meno. l'applicazione dello stile, avvenendo in un ciclo, anzi, due cicli annidati, avviene per ogni singola cella. anche perché non ho trovato il modo di applicarlo ad un range, cosa che a me andrebbe beinissimo.

    for( nrigaCorr = 1;nrigaCorr <= m_rsindi.numRighe(); nrigaCorr++) {
    //la rottura di codice sul ciclo per gruppo indicatori è sull'ID del padre
    int nidenPadr = (Integer) m_rsindi.valore(nrigaCorr, "idenPadr");
    int ncolo = (Integer) m_rsindi.valore(nrigaCorr, "colo");
    m_coloCorr = (short) ncolo;
    //impongo il formato della cella Gruppo di Indicatori
    m_stilStrd.fnewl = true;
    m_stilStrd.colorePPiano = m_coloCorr;
    //mi salvo la riga di partenza del gruppo da unire
    nrighUnirPart = m_nrigaExce;
    m_exce.valore(m_nrigaExce, COLO_GRUP, (String) m_rsindi.valore( nrigaCorr, padr"));
    m_exce.stileCella(m_nrigaExce, COLO_GRUP, m_stilStrd);
    //ciclo sul gruppo indicatori
    while( nidenPadr == (Integer) m_rsindi.valore(nrigaCorr, "idenPadr")) {
    //stile della cella Indicatore
    m_exce.valore(m_nrigaExce, COLO_INDI, (String) m_rsindi.valore( nrigaCorr, "indi"));
    m_exce.stileCella(m_nrigaExce, COLO_INDI, m_stilStrd);
    //sulla base dell'indicatore corrente, e mantenendo la riga, vado a cercare i dati
    cercaDatiIndicatore( (Integer) m_rsindi.valore(nrigaCorr, "idenIndi"));
    m_nrigaExce++;
    if( (++nrigaCorr) > m_rsindi.numRighe())
    break;
    } //while nidenPadr
    //chiude celle da unire in verticale
    nrighUnirFine = m_nrigaExce-1;
    m_exce.unisciCelle(nrighUnirPart, COLO_GRUP, nrighUnirFine, COLO_GRUP);
    } //for nrigaCorr

    grazie per l'aiuto.
    marco
    Marco

  4. #4
    puo' darsi che alla stessa cella setti piu' di un font per via dei due cicli annidati, magari excel "non capisce" cosa fare... e ti sputa fuori l'errore.

    prova a impostare lo stile della cella solo all'interno del ciclo piu' interno.

    e' solo un'ipotesi... non sono sicuro che funzioni...

    anche perke' io ai tempi ho usato un metodo completamente diverso...

    io devevo creare una classe di utilita' che dai certi parametri ne ricavasse un excel... quindi sono stato il piu' generico possibile.
    La vita sarebbe piu' facile se avessi il codice sorgente!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    16
    ciao.
    non credo che si dia il caso di una cella con il font impostato più volte, per come il programma è impostato. magari, hai un'idea di come si possa impostare uno stile per un gruppo di celle? dagli how-to (preziosi ma essenziali) non sono riuscito a trovare un riferimento.
    grazie.
    marco
    Marco

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.