SeamFramework.orgCommunity Documentation

Capitolo 19. The Microsoft® Excel® spreadsheet application

19.1. Supporto The Microsoft® Excel® spreadsheet application
19.2. Creazione di un semplice workbook
19.3. Workbooks
19.4. Worksheets
19.5. Colonne
19.6. Celle
19.6.1. Validazione
19.6.2. Maschere per il formato
19.7. Formule
19.8. Immagini
19.9. Hyperlinks
19.10. Intestazioni e pié di pagina
19.11. Stampa di aree e titoli
19.12. Comandi per i fogli di lavoro (worksheet)
19.12.1. Raggruppamento
19.12.2. Interruzioni di pagina
19.12.3. Fusione (merge)
19.13. Esportatore di datatable
19.14. Font e layout
19.14.1. Link ai fogli di stile
19.14.2. Font
19.14.3. Bordi
19.14.4. Background
19.14.5. Impostazioni colonna
19.14.6. Impostazioni cella
19.14.7. L'exporter delle datatable
19.14.8. Esempi di layout
19.14.9. Limitazioni
19.15. Internazionalizzazione
19.16. Link ed ulteriore documentazione

Seam supporta inoltre la generazione di fogli elettronici the Microsoft® Excel® spreadsheet application tramite l'eccellente libreria JExcelAPI . Il documento generato è compatibile con the Microsoft® Excel® spreadsheet application versione 95, 97, 2000, XP e 2003. Attualmente viene esposto un limitato set di funzionalità di questa libreria, ma lo scopo finale è riuscire a fare tutto ciò che la libreria consente. Si prega di fare riferimento alla documentazione di JExcelAPI per ulteriori informazioni, possibilità e limitazioni.

The Microsoft® Excel® spreadsheet application jboss-seam-excel.jar. Questo JAR contiene i controlli the Microsoft® Excel® spreadsheet application JSF, che vengono impiegati per costruire le viste che possono generare il documento, ed il componente DocumentStore, che serve il documento generato all'utente. Per includere il supporto ad the Microsoft® Excel® spreadsheet application nella propria applicazione, si includa jboss-seam-excel.jar nella directory WEB-INF/lib assieme al file jxl.jar. Inoltre, occorre configurare il servlet DocumentStore in web.xml.

Il modulo The Microsoft® Excel® spreadsheet application di Seam richiede l'uso di Facelets come tecnologia per la vista. Inoltre richiede l'uso del pacchetto seam-ui.

Il progetto examples/excel contiene un esempio del supporto the Microsoft® Excel® spreadsheet application in azione. Mostra come eseguire il correttto impacchettamento per il deploy e mostra le funzionalità esposte.

La personalizzazione del modulo per supportare altri tipi di API the Microsoft® Excel® spreadsheet application è diventata molto semplice. Si implementi l'interfaccia ExcelWorkbook, e si registri in components.xml.


<excel:excelFactory>
   <property name="implementations">
      <key
>myExcelExporter</key>
      <value
>my.excel.exporter.ExcelExport</value>
   </property>
</excel:excelFactory
>
      

e si registri il namespace excel nei tag dei componenti con


xmlns:excel="http://jboss.com/products/seam/excel"

Poi si imposti il tipo UIWorkbook per myExcelExporter e verrà usato il proprio esportatore. Di default è "jxl", ma è stato aggiunto anche il supporto per CSV, usando il tipo "csv".

Si veda Sezione 18.6, «Configurazione di iText» per informazioni su come configurare il document servlet per servire i documenti con estensione .xls.

Se si incontrano problemi nell'accedere al file generato con IE (specialmente con https), ci si assicuri di non avere messo restrizioni nel browser (si veda http://www.nwnetworks.com/iezones.htm/), restrizioni di sicurezza in web.xml oppure una combinazione delle due.

L'uso base del supporto ai fogli elettronici è molto semplice; viene usato come il familiare <h:dataTable> e si può associare una List, Set, Map, Array o DataModel.



            <e:workbook xmlns:e="http://jboss.com/products/seam/excel">
               <e:worksheet>
                  <e:cell column="0" row="0" value="Hello world!"/>
               </e:worksheet>
            </e:workbook>
        
      

Non è molto utile, guardiamo quindi ai casi più comuni:



            <e:workbook xmlns:e="http://jboss.com/products/seam/excel">
               <e:worksheet value="#{data}" var="item">
                  <e:column>
                     <e:cell value="#{item.value}"/>
                  </e:column>
               </e:worksheet>
            </e:workbook>
         
      

In primo luogo si ha a livello più alto un elemento workbook, che serve come container e non ha attributi. L'elemento figlio worksheet ha due attributi; value="#{data}" è il binding EL ai dati e var="item" è il nome dell'elemento corrente. Innestato dentro worksheet c'è una singola colonna e dentro essa si vede la cella, che è l'associazione finale ai dati dell'elemento iterato.

Questo è ciò che serve sapere per cominciare a mettere dati nei fogli elettronici!

I workbook sono i padri di livello più alto dei worksheet e dei link ai fogli di stile.

<e:workbook>

Attributi

  • type — Definisce quale module esporto usare. Il valore è una string e può essere o "jxl" o "csv". Il default è "jxl".

  • description — La descrizione del link. Il valore è una stringa.

  • arrayGrowSize — L'ammontare di memoria con cui incrementare la memoria allocata per la memorizzazione dei dati di workbook. Per processi che leggono molti workbook piccoli dentro un WAS, può essere necessario ridurre la dimensione di default. Il valore di default è 1 megabyte. Il valore è un numero (byte).

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • description — La descrizione del link. Il valore è una stringa.

  • characterSet — Il set di caratteri. Questo viene usato solo quando viene letto il foglio elettronico, e non ha alcun effetto quando viene scritto. Il valore è una stringa (codifica del set di caratteri).

  • description — La descrizione del link. Il valore è una stringa.

  • excelDisplayLanguage — Il linguaggio in cui viene mostrato il file generato. Il valore è una stringa (codice a due caratteri ISO 3166 del paese).

  • description — La descrizione del link. Il valore è una stringa.

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • description — La descrizione del link. Il valore è una stringa.

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • initialFileSize — Ammontare iniziale di memoria allocata per memorizzare i dati del workbook quando viene letto un foglio elettronico. Per processi che leggono molti workbook piccoli dentro un WAS può essere necessario ridurre la dimensione di default. Il valore di default è 5 megabytes. Il valore è un numero (byte).

  • locale — Il locale usato da JExcelApi per generare il foglio elettronico. Impostare questo valore non ha effetti sulla lingua o la regione del file excel generato. Il valore è una stringa.

  • mergedCellCheckingDisabled — Se il controllo della cella unita debba essere disabilitato. Il valore è un booleano.

  • description — La descrizione del link. Il valore è una stringa.

  • propertySets — I set di proprietà (come le macro) devono essere abilitati per essere copiati assieme al workbook? Lasciando abilitato questa caratteristica, il processo JXL userà più memoria. Il valore è un booleano.

  • rationalization — I formati delle celle devono essere razionalizzati prima di scrivere il foglio? Il valore è un booleano. Il default è true.

  • supressWarnings — Gli avvisi devono essere soppressi? A causa di un cambiamento nella versione 2.4 del logging, ora il comportamento degli avvisi è impostato a livello di JVM (dipende dal tipo di logger usato). Il valore è un booleano.

  • temporaryFileDuringWriteDirectory — Usato in congiunzione con useTemporaryFileDuringWrite per impostare la directory target per i file temporanei. Il valore può essere NULL, nel qual caso viene usata la directory temporanea di default del sistema. Il valore è una stringa (la directory in cui scrivere i file temporanei).

  • useTemporaryFileDuringWrite — Se un file temporaneo debba essere usato durante la generazione del workbook. Se non impostato, il workbook avverrà interamente in memoria. Impostando questo flag si valuti il trade-off tra l'uso della memoria e la performance. Il valore è un booleano.

  • bottomMargin — Il margine inferiore. Il valore è un numero (pollici).

  • filename — Il nome del file da usare per il download. Il valore è una stringa. Si noti che se si mappa il DocumentServlet su qualche pattern, questa estensione del file deve corrispondere.

  • exportKey — Una chiave sotto cui memorizzare i dati di risultato in un oggetto DocumentData nello scope evento. Se usato, non c'è redirezione.

Elementi figli

Facets

  • nessuno



            <e:workbook>
               <e:worksheet>
                  <e:cell value="Hello World" row="0" column="0"/>
               </e:worksheet>
            <e:workbook>
         
      

definisce un workbook con un foglio di lavoro ed un saluto in A1

I worksheet sono figli dei workbook e padri delle colonne e dei comandi worksheet. Possono anche contenere celle, formule, immagini e collegamenti esplicitamente collocati. Sono le pagine che creano il workbook.

<e:worksheet>

  • value — Espressione-EL sui dati retrostanti. Il valore è una stringa. Il target di quest'espressione è esaminato per un Iterable. Si noti che se il target è una Map, l'iterazione viene fatta su Map.Entry entrySet(), e quindi occorre usare un .key o un .value per individuare i riferimenti.

  • var — Il nome della variabile della riga iteratore corrente che può successivamente essere referenziata negli attributi di valore della cella. Il valore è una stringa.

  • name — Il nome del worksheet. Il valore è una stringa. Il default è Sheet# dove # è l'indice del worksheet. Se esiste il nome del worksheet dato, tale foglio viene selezionato. Questo può essere usato per unire diversi set di dati in un singolo worksheet, solamente definendo lo stesso nome per questi (usando startRow e startCol per assicurarsi che non occupino lo stesso spazio).

  • startRow — Definisce la riga di inizio dei dati. Il valore è un numero. Usato per collocare i dati in altri posti rispetto all'angolo in alto a sinistra (è utile in particolare se si hanno set di dati multipli per un singolo worksheet). Il default è 0.

  • startColumn — Definisce la colonna di inizio dei dati. Il valore è un numero. Usato per collocare i dati in altri posti rispetto all'angolo in alto a sinistra (è utile in particolare se si hanno set di dati multipli per un singolo worksheet). Il default è 0.

  • automaticFormulaCalculation — Le formule devono essere automaricamente ricalcolate? Il valore è un booleano.

  • bottomMargin — Il margine inferiore. Il valore è un numero (pollici).

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • description — La descrizione del link. Il valore è una stringa.

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • description — La descrizione del link. Il valore è una stringa.

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • normalMagnification — Il fattore di ingrandimento normale (non zoom o fattore di scala). Il valore è un numero (percentuale).

  • description — La descrizione del link. Il valore è una stringa.

  • pageBreakPreviewMagnification — Il fattore di ingrandimento dell'anteprima per l'interruzione di pagina (non fattori di zoom o di scala). Il valore è un numero (percentuale).

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • paperSize — La dimensione dellapagina da usare quando si stampa questo foglio. Il valore è una stringa che può essere un valore tra "a4", "a3", "letter", "legal" ecc. (Si veda jxl.format.PaperSize ).

  • description — La descrizione del link. Il valore è una stringa.

  • description — La descrizione del link. Il valore è una stringa.

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • bottomMargin — Il margine inferiore. Il valore è un numero (pollici).

  • recalculateFormulasBeforeSave — Le formule devono essere ricalcolate quando viene salvato il foglio? Il valore è un boolean. Il default è false.

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • description — La descrizione del link. Il valore è una stringa.

  • description — La descrizione del link. Il valore è una stringa.

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • description — La descrizione del link. Il valore è una stringa.

  • zoomFactor — Fattore di zoom. Da non confondere con il fattore di zoom (che è relazionato alla vista dello schermo) con il fattore di scala (che si riferisce al fattore di scala in fase di stampa). Il valore è un numero (percentuale).

Elementi figli

Facets

  • header— I contenuti che verranno messi in cima al blocco di dati, sopra le intestazioni della colonna (se presenti).

  • footer— I contenuti che verranno messi in fondo al blocco di dati, sotto i pié di pagina della colonna (se presenti).



            <e:workbook>
               <e:worksheet name="foo" startColumn="1" startRow="1">
                      <e:column value="#{personList}" var="person">
                         <f:facet name="header">
                            <e:cell value="Last name"/>
                         </f:facet>
                     <e:cell value="#{person.lastName}"/>
                  </e:column>
               </e:worksheet>
            <e:workbook>
         
      

definisce un worksheet con nome "foo", che inizia in B2.

Le colonne sono figle dei worksheet e padri delle celle, immagini, formule e collegamenti. Sono la struttura che controlla l'iterazione dei dati del worksheet. Si veda Sezione 19.14.5, «Impostazioni colonna» per la formattazione.

<e:column>

Attributi

  • nessuno

Elementi figli

Facets

  • header — Questo facet può contenere un <e:cell>, <e:formula>, <e:image> o <e:hyperLink> che verrà usato come intestazione per la colonna.

  • footer — Questo facet può contenere un <e:cell>, <e:formula>, <e:image> o <e:hyperLink> che verrà usato come pié di pagina per la colonna.



            <e:workbook>
                   <e:worksheet>
                      <e:column value="#{personList}" var="person">
                         <f:facet name="header">
                            <e:cell value="Last name"/>
                         </f:facet>
                         <e:cell value="#{person.lastName}"/>
                      </e:column>
                   </e:worksheet>
            <e:workbook>
         
      

definisce una colonna con un intestazione ed un output iterato.

Le celle sono innestate dentro le colonne (per l'iterazione) o dentro i worksheet (per il collocamento diretto usando gli attributi column e row) e sono responsabili dell'output del valore (solitamente tramite un'espressione EL che coinvolge l'attributo var della datatable. Vedere ???

<e:cell>

Attributi

  • column — La colonna dove mettere la cella. Il default è un contatore interno. Il valore è un numero. Si noti che il valore parte da 0.

  • row — La riga dove mettere la cella. Il default è un contatore interno. Il valore è un numero. Si noti che il valore parte da 0.

  • value — Il valore da mostrare. Solitamente un'espressione-EL che fa riferimento all'attributo della variabile della datatable che lo contiene. Il valore è una stringa.

  • description — La descrizione del link. Il valore è una stringa.

  • rightMargin — Il margine destro. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

Elementi figli

Facets

  • nessuno



            <e:workbook>
               <e:worksheet
>         
                  <e:column value="#{personList}" var="person">
                     <f:facet name="header">
                            <e:cell value="Last name"/>
                         </f:facet>
                         <e:cell value="#{person.lastName}"/>
                      </e:column>
               </e:worksheet>
            </e:workbook
>     
         
      

definisce una colonna con un intestazione ed un output iterato.

Le validazioni vengono innestate dentro celle o formule. Esse aggiungono vincoli ai dati di cella.

<e:numericValidation>

Attributi

  • description — La descrizione del link. Il valore è una stringa.

  • description — La descrizione del link. Il valore è una stringa.

  • description — La descrizione del link. Il valore è una stringa.

    • "equal" - richiede che il valore della cella corrisponda a quello definito nell'attributo value

    • "greater_equal" - richiede che il valore della cella sia maggiore o uguale al valore definito nell'attributo value

    • "less_equal" - richiede che il valore della cella sia minore o uguale al valore definito nell'attributo value

    • "less_than" - richiede che il valore della cella sia minore del valore definito nell'attributo value

    • "not_equal" - richiede che il valore della cella non corrisponda al valore definito nell'attributo value

    • "between" - richiede che il valore della cella sia compreso tra i valori definiti negli attributi value e value2

    • "not_between" - richiede che il valore della cella non sia compreso tra i valori definiti negli attributi value e value2

Elementi figli

  • nessuno

Facets

  • nessuno



               <e:workbook>
                  <e:worksheet>
                     <e:column value="#{personList}" var="person"
>                   
                        <e:cell value="#{person.age">
                           <e:numericValidation condition="between" value="4" 
                              value2="18"/>
                        </e:cell>
                     </e:column>
                  </e:worksheet>
               </e:workbook
>            
            
         

aggiunge la validazione numerica alla cella specificando che il valore deve essere tra 4 e 18.

<e:rangeValidation>

Attributi

  • description — La descrizione del link. Il valore è una stringa.

  • description — La descrizione del link. Il valore è una stringa.

  • description — La descrizione del link. Il valore è una stringa.

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

Elementi figli

  • nessuno

Facets

  • nessuno



               <e:workbook>
                  <e:worksheet>
                     <e:column value="#{personList}" var="person"
>                   
                            <e:cell value="#{person.position">
                           <e:rangeValidation startColumn="0" startRow="0" 
                              endColumn="0" endRow="10"/>
                        </e:cell>
                     </e:column>
                  </e:worksheet>
               </e:workbook
>            
            
         

aggiunge la validazione ad una cella specificando che il valore deve essere in valori specificati nel range A1:A10.

<e:listValidation>

Attributi

  • nessuno

Elementi figli

  • Zero o più elementi di validazione lista.

Facets

  • nessuno

e:listValidation è solo un container per mantenere diversi tag e:listValidationItem.

<e:listValidationItem>

Attributi

  • value — Un valore da validare.

Elementi figli

  • nessuno

Facets

  • nessuno



               <e:workbook>
                  <e:worksheet>
                     <e:column value="#{personList}" var="person"
>            
                        <e:cell value="#{person.position">
                           <e:listValidation>
                              <e:listValidationItem value="manager"/>
                              <e:listValidationItem value="employee"/>
                           </e:listValidation>
                        </e:cell>
                     </e:column>
                  </e:worksheet>
               </e:workbook
>              
            
         

aggiunge la valodazione ad una cella specificando che il valore deve essere "manager" o "employee".

Le formule sono innestate nelle colonne (per iterazione) o dentro i worksheet (per collocazione diretta usando gli attributi column e row) e aggiungono calcoli o funzioni ai range di celle. Sono essenzialmente celle, si veda Sezione 19.6, «Celle» per gli attributi disponibili. Si noti che possono impiegare template ed avere definizioni proprie di font, ecc. come le normali celle.

La formula della cella è collocata nell'attributo value come una normale annotazione the Microsoft® Excel® spreadsheet application. Si noti che quando si fanno formule con riferimenti ad altri fogli, i worksheet devo esistere prima di eseguire riferimenti ad essa. Il valore è una stringa.



            <e:workbook>
               <e:worksheet name="fooSheet">
                  <e:cell column="0" row="0" value="1"/>
               </e:worksheet>
               <e:worksheet name="barSheet">
                  <e:cell column="0" row="0" value="2"/>
                  <e:formula column="0" row="1" 
                     value="fooSheet!A1+barSheet1!A1">
                     <e:font fontSize="12"/>
                  </e:formula>
               </e:worksheet>
            </e:workbook
>         
         
      

definisce una formula in B2 che somma le celle A1 nei worksheet FooSheet e BarSheet.

Le immagini sono innestate dentro le colonne (per iterazione) o dentro i worksheet (per collocazione diretta usando gli attributi startColumn/startRow e rowSpan/columnSpan). Gli span sono opzionali e se omessi, l'immagine verrà inserita senza ridimensionamento.

<e:image>

Attributi

  • startColumn — La colonna iniziale dell'immagine. Il default è il contatore interno. Il valore è un numero. Si noti che il valore inizia da zero.

  • startRow — La riga iniziale dell'immagine. Il default è il contatore interno. Il valore è un numero. Si noti che il valore inizia da zero.

  • columnSpan — Lo span di colonna dell'immagine. Il default è quello risultante nella larghezza di default dell'immagine. Il default è un float.

  • rowSpan — Lo span di colonna dell'immagine. Il default è quello risultante nella altezza di default dell'immagine. Il default è un float.

  • description — La descrizione del link. Il valore è una stringa.

Elementi figli

  • nessuno

Facets

  • nessuno



            <e:workbook>
               <e:worksheet>
                  <e:image startRow="0" startColumn="0" rowSpan="4" 
                     columnSpan="4" URI="http://foo.org/logo.jpg"/>
               </e:worksheet>
            </e:workbook
>           
         
      

definisce un'immagine in A1:A5 basato sui dati in questione

Gli hyperlink sono innestati dentro le colonne (per iterazione) o dentro i worksheet (per collocazione diretta usando gli attributi startColumn/startRow e endColumn/endRow). Aggiungono agli URI una navigazione tramite link.

<e:hyperlink>

Attributi

  • startColumn — La colonna iniziale del hyperlink. Il default è un contatore interno. Il valore è un numero. Si noti che il valore parte da zero.

  • startRow — La riga iniziale del hyperlink. Il default è un contatore interno. Il valore è un numero. Si noti che il valore parte da zero.

  • endColumn — La colonna finale del hyperlink. Il default è un contatore interno. Il valore è un numero. Si noti che il valore parte da zero.

  • endRow — La riga finale del hyperlink. Il default è un contatore interno. Il valore è un numero. Si noti che il valore parte da zero.

  • description — La descrizione del link. Il valore è una stringa.

  • description — La descrizione del link. Il valore è una stringa.

Elementi figli

  • nessuno

Facets

  • nessuno



            <e:workbook>
               <e:worksheet>
                  <e:hyperLink startRow="0" startColumn="0" endRow="4" 
                     endColumn="4" URL="http://seamframework.org" 
                     description="The Seam Framework"/>
               </e:worksheet>
            </e:workbook
>          
         
      

definisce un hyperlink che punta a SFWK nell'area A1:E5

Intestazioni e pié di pagina sono figli dei fogli di lavoro e contengono facet che a loro volta contengono una stringa con i comandi da analizzare.

<e:header>

Attributi

  • nessuno

Elementi figli

  • nessuno

Facets

  • left — I contenuti della parte sinistra di intestazione/pié di pagina.

  • center — i contenuti della parte centrale di intestazione/pié di pagina.

  • right — i contenuti della parte destra di intestazione/pié di pagina.

<e:footer>

Attributi

  • nessuno

Elementi figli

  • nessuno

Facets

  • left — I contenuti della parte sinistra di intestazione/pié di pagina.

  • center — i contenuti della parte centrale di intestazione/pié di pagina.

  • right — i contenuti della parte destra di intestazione/pié di pagina.

Il contenuto dei facets è una stringa che può contenere vari comandi delimitati da # come segue:

<e:workbook> <e:worksheet> <e:hyperLink startRow="0" startColumn="0" endRow="4" endColumn="4" URL="http://seamframework.org" description="The Seam Framework"/> </e:worksheet> </e:workbook >

Inserisce la data corrente

#page_number#

Inserisce il numero della pagina corrente

#time#

Inserisce l'orario corrente

#total_pages#

Inserisce il conteggio totale della pagina

#worksheet_name#

Inserisce il nome del worksheet

#workbook_name#

Inserisce il nome del workbook

#bold#

Attiva il font in grassetto, usare un altro #bold# per disattivarlo

#italics#

Attiva il font in corsivo, usare un altro #italic# per disattivarlo

#underline#

Attiva la sottolineatura, usare un altro #underline# per disattivarla

#double_underline#

Attiva la doppia sottolineatura, usare un altro #double_underline# per disattivarla

#outline#

Attiva il font outline, usare un altro #outline# per disattivarlo

#shadow#

Attiva il font ombreggiato, usare un altro #shadow# per disattivarlo

#strikethrough#

Attiva il font barrato, usare un altro #strikethrough# per disattivarlo

#subscript#

Attiva il font subscripted, usare un altro #subscript# per disattivarlo

#superscript#

Attiva il font superscript, usare un altro #superscript# per disattivarlo

#font_name#

Imposta il nome dei font, si usa come #font_name=Verdana#

#font_size#

Imposta la dimensione dei font, si usa come #font_size=12#



            <e:workbook>
               <e:worksheet
>         
                  <e:header>
                     <f:facet name="left">
                        This document was made on #date# and has #total_pages# pages
                     </f:facet>
                     <f:facet name="right">
                        #time#
                     </f:facet>
                  </e:header>
               <e:worksheet>
            </e:workbook>
         
      

Stampa le aree ed i titoli figli dei worksheet e dei templatee fornisce...stampa aree e titoli.

<e:printArea>

Attributi

  • firstColumn — La colonna dell'angolo in alto a sinistra dell'area. Il parametro è un numero. Si noti che il valore parte da zero.

  • firstRow — La riga dell'angolo in alto a sinistra dell'area. Il parametro è un numero. Si noti che il valore parte da zero.

  • lastColumn — La colonna dell'angolo in basso a destra dell'area. Il parametro è un numero. Si noti che il valore parte da zero.

  • lastRow — La riga dell'angolo in basso a destra dell'area. Il parametro è un numero. Si noti che il valore parte da zero.

Elementi figli

  • nessuno

Facets

  • nessuno



            <e:workbook>
               <e:worksheet
>            
                  <e:printTitles firstRow="0" firstColumn="0" 
                     lastRow="0" lastColumn="9"/>
                  <e:printArea firstRow="1" firstColumn="0" 
                     lastRow="9" lastColumn="9"/>
               </e:worksheet>
            </e:workbook>
         
      

definisce un titolo di stampa tra A1:A10 ed un'area di stampa tra B2:J10.

I comandi per i fogli di lavoro sono figli dei workbook e vengono solitamente eseguiti solo una volta.

Fornisce un raggruppamento di colonne e righe.

<e:groupRows>

Attributi

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • description — La descrizione del link. Il valore è una stringa.

Elementi figli

  • nessuno

Facets

  • nessuno

<e:groupColumns>

Attributi

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • description — La descrizione del link. Il valore è una stringa.

Elementi figli

  • nessuno

Facets

  • nessuno



               <e:workbook>
                  <e:worksheet
>            
                     <e:groupRows startRow="4" endRow="9" collapse="true"/>
                     <e:groupColumns startColumn="0" endColumn="9" collapse="false"/>
                  </e:worksheet>
               </e:workbook>
            
         

raggruppa dalla riga 5 alla 10 e dalla colonna 5 alla 10 in modo che le righe siano inizialmente collassate (ma non le colonne).

Fornisce l'unione delle celle

<e:mergeCells>

Attributi

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • topMargin — Il margine superiore. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

  • leftMargin — Il margine sinistro. Il valore è un numero (pollici).

Elementi figli

  • nessuno

Facets

  • nessuno



               <e:workbook>
                  <e:worksheet>
                     <e:mergeCells startRow="0" startColumn="0" endRow="9" endColumn="9"/>
                  </e:worksheet>
               </e:workbook
>            
            
         

unisce le celle nel range A1:J10

Se si preferisce esportare una datatable JSF esistente invece di scrivere un apposito documento XHTML, si può eseguire il componente org.jboss.seam.excel.excelExporter.export, passando l'id della datatable come parametro Seam EL. Si presuma di avere una datatable



            <h:form id="theForm">
               <h:dataTable id="theDataTable" value="#{personList.personList}" 
                  var="person">
                  ...
               </h:dataTable>
            </h:form>
            
      

che si vuole visualizzare come foglio Microsoft® Excel®. Si collochi un



            <h:commandLink 
               value="Export" 
               action="#{excelExporter.export('theForm:theDataTable')}"
            />
         
      

nella form e si è già finito. Si può certamente eseguire l'exporter con un pulsante, s: link oppure con un altro metodo preferito. Ci sono anche piani per un tag dedicato all'export che possa essere messo nel tag della datatable per non dover più fare riferimento all'id della datatable.

Si veda Sezione 19.14, «Font e layout» per la formattazione.

Il controllo dell'aspetto dell'output è fatto con una combinazione di attributi stile-CSS e di attributi tag. I più comuni (font, bordi, background, ecc.) sono CSS ed alcune impostazioni generali sono negli attributi tag.

Gli attributi CSS vanno in cascata dal padre ai figli e da un tag si scende in cascata attraverso classi CSS referenziate negli attributi styleClass ed infine lungo gli attributi CSS definiti nell'attributo style. Si può collocarli ovunque, ma ad esempio impostare la larghezza di colonna in una cella innestata dentro tale colonna ha poco senso.

Questo gruppo di attributi XLS-CSS definisce un font ed i suoi attributi

xls-font-family

Il nome del font. Assicurarsi che sia supportato del proprio sistema.

xls-font-size

La dimensione del font. Si usi un numero intero.

xls-font-color

Il colore dei font (si veda jxl.format.Colour ).

xls-font-bold

Il font deve essere in grassetto? I valori validi sono "true" and "false"

xls-font-italic

Il font deve essere in corsivo? I valori validi sono "true" and "false"

xls-font-script-style

The script style of the font (see jxl.format.ScriptStyle ).

xls-font-underline-style

Lo stile sottolineato del font (si veda jxl.format.UnderlineStyle ).

xls-font-struck-out

Il font deve essere barrato? I valori validi sono "true" e "false"

xls-font

Una notazione breve per impostare tutti i valori. Si collochi il nome del font in fondo e si usino i tick mark per i font separati da uno spazio, es. 'Times New Roman'. Si usi "italic", "bold" e "struckout".

Esempio style="xls-font: red bold italic 22 Verdana"

Questo gruppo di attributi XLS-CSS definisce i bordi della cella

xls-border-left-color

Il colore del bordo del lato sinistro della cella (si veda jxl.format.Colour ).

xls-border-left-line-style

Lo stile di linea del bordo del lato sinistro della cella (si veda jxl.format.LineStyle ).

xls-border-left

Una notazione breve per impostare lo stile della linea ed il colore del lato sinistro della cella, es. style="xls-border-left: thick red"

xls-border-top-color

Il colore del bordo del lato alto della cella (si veda jxl.format.Colour ).

xls-border-top-line-style

Lo stile di linea del bordo del lato alto della cella (si veda jxl.format.LineStyle ).

xls-border-top

Una notazione breve per impostare lo stile della linea ed il colore del lato alto della cella, es. style="xls-border-top: red thick"

xls-border-right-color

Il colore del bordo del lato destro della cella (si veda jxl.format.Colour ).

xls-border-right-line-style

Lo stile di linea del bordo del lato destro della cella (si veda jxl.format.LineStyle ).

xls-border-right

Una notazione breve per impostare lo stile della linea ed il colore del lato destro della cella, es. style="xls-border-right: thick red"

xls-border-bottom-color

Il colore del bordo del lato basso della cella (si veda jxl.format.Colour ).

xls-border-bottom-line-style

Lo stile di linea del bordo del lato basso della cella (si veda jxl.format.LineStyle ).

xls-border-bottom

Una notazione breve per impostare lo stile della linea ed il colore del lato basso della cella, es. style="xls-border-bottom: thick red"

xls-border

Una notazione breve per impostare lo stile della linea ed il colore per tutti i lati della cella, es. style="xls-border: thick red"

Questo gruppo di attributi XLS-CSS definisce il background della cella

xls-background-color

Il colore del background (si veda jxl.format.LineStyle ).

xls-background-pattern

Il pattern del background (si veda jxl.format.Pattern ).

xls-background

Una notazione breve per impostare il pattern ed il colore del background. Vedere sopra per le regole.

Questo gruppo di attributi XLS-CSS definisce le larghezze di colonna, ecc.

xls-column-width

La larghezza della colonna. Si usino valori ampi (~5000) per cominciare. Usata da e:column nella modalità xhtml.

xls-column-widths

La larghezza della colonna. Si usino valori ampi (~5000) per cominciare. Usata dall'excel exporter, collocato nell'attributo style della datatable. Si usino valori numerici o * per bypassare una colonna.

Esempio style="xls-column-widths: 5000, 5000, *, 10000"

xls-column-autosize

Deve essere fatto un tentativo per autodimensionare la colonna? I valori validi sono "true" and "false".

xls-column-hidden

La colonna deve essere nascosta? I valori validi sono "true" e "false".

xls-column-export

La colonna deve essere mostrata nell'esportazione? I valori validi sono "true" e "false". Il valore di default è "true".

Questo gruppo di attributi XLS-CSS definisce le proprietà della cella

xls-alignment

L'allineamento del valore della cella (si veda jxl.format.Alignment ).

xls-force-type

Il tipo forzato dei dati della cella. Il valore è una stringa che può essere una tra "general", "number", "text", "date", "formula" o "bool". Il tipo è automaticamente individuato e quindi quest'attributo si usa raramente.

xls-format-mask

La maschera di formato della cella, si veda Sezione 19.6.2, «Maschere per il formato»

xls-indentation

L'indentazione del valore della cella. Il valore è numerico.

xls-locked

Se la cella debba essere bloccata. Da usare con il livello workbook bloccato. I valori validi sono "true" e "false".

xls-orientation

L'orientamento del valore della cella (si veda jxl.format.Orientation ).

xls-vertical-alignment

L'allineamento verticale del valore della cella (si veda jxl.format.VerticalAlignment ).

xls-shrink-to-fit

I valori della cella devono adattarsi alla dimensione? I valori validi sono "true" e "false".

xls-wrap

La cella deve contenere nuove linee? I valori validi sono "true" e "false".

Ci sono solo due chiavi di resource bundle usate, entrambe per il formato di data invalido ed entrambi prendono un parametro (il valore chiave)

Il nucleo delle funzionalità the Microsoft® Excel® spreadsheet application è basato sull'eccellente libreria JExcelAPI che può essere trovata in http://jexcelapi.sourceforge.net/ e la maggior parte delle funzionalità e le possibili limitazioni sono ereditate da qua.

Se si usano il forum o la mailing list, si prega di ricordare che non questi non possono fornire informazioni su come Seam impiega la loro libreria, ogni problema dovrebbe essere riportato in JBoss Seam JIRA sotto il modulo "excel".