Hi all

Since I bore a lot of you with my newbbie questions I give this back
to the list... hoping thath it is usefull for some one else.

This is my action bean that store the content of a uidata component in
a excel file.

It needs POI (http://jakarta.apache.org/poi) v 2.0 in che classpath.

1 add the bean and the util class to your project

2 add the mappings to the faces-config.xml

 <managed-bean>
        <managed-bean-name>excelManager</managed-bean-name>
        
<managed-bean-class>com.kyub.jsf.excelaction.ExcelManagerBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property><property-name>fileCache</property-name>
            <value>/Users/sammyrulez/IdeaProjects/Faces/exploded/</value>
          </managed-property><managed-property>
              <property-name>templateFileName</property-name>
              <value>/Users/sammyrulez/IdeaProjects/Faces/workbook.xls</value>
        </managed-property>
         <managed-property>
            <property-name>sheet</property-name>
            <value>0</value>
        </managed-property>
        <managed-property>
            <property-name>rowOffset</property-name>
            <value>3</value>
        </managed-property>


        </managed-bean>

ok properties meaning:
fileCache: where excel file are cached

templateFileName: excel file to use as a template: it could be an
empty excel file, but it must be a valid excel 97/2000 ecc spreadsheet

sheet: sheet where to write data (number zero based)

rowOffset: row from where start writing data  (number zero based)

3 add navigation .. here my example with a jsp displainig the link to
the file...

<navigation-case>
       <from-outcome>excel</from-outcome> <!-- excel is the outcome of
my action! -->
       <to-view-id>/excel.jsp</to-view-id><redirect />
   </navigation-case>

4 add a command link to the footer (or header) facet of your dataTable

 <f:facet name="footer">
                <h:commandLink
actionListener="#{excelManager.listenTable}"
action="#{excelManager.exportData}"   >
                    <f:param name="properties" value="name,password"/>
                    <f:param name="headers" value="Nome,Password"/>
                    <f:param name="filename" value="rapportino_excel.xls"/>
                    <h:outputText value="export in excel"/>
                </h:commandLink>
          </f:facet>

"properies" are the properties of the enclosed collection which is the
value attribute of your dataTable you want to display in the column.
(things  like order.customer.name should work!)

"headers" are the header of each column

"filename" is the fixed part of the name of the output file. A time
stamp and the dataTable id will be added.



I will make a consistent package if I will have the time this week
with a decent "readme"


source code here http://www.kyub.com/ExcelManagerBean.java and here
http://www.kyub.com/ReflectionUtil.java



-- 
::SammyRulez::
http://sammyprojectz.blogspot.com

Reply via email to