Seam也支持微软Excel电子表格应用程序的电子表格生成,通过卓越的JExcelAPI [http://jexcelapi.sourceforge.net/]库。生成的文档与微软Excel电子表格应用程序95, 97, 2000, XP和2003版兼容。 目前暴露了库功能的一个有限子集,但是最终目标能够做库允许的任何事情。有关其能力和局限性的详细信息,请参考JExcelAPI文档。
1、seam生成excel所需的jar包:
jboss-seam-excel.jar :这个JAR包含Excel表格应用程序的JSF控件,它常被用来构建能够渲染文档的视图,
以及DocumentStore组件,它提供渲染后的文档给用户。
jxl.jar :是一个韩国人写的处理Excel的类库,能够方便的导入和导出Excel,是操作excel的工具类。
jboss-seam-ui.jar :为支持Excel表格应用程序Seam模块需要使用Facelets作为视图技术,所有此包也是必须的。
为了在你的应用程序中包括微软Excel电子表格应用程序支持,将jboss-seam-excel.jar文件和jxl.jar文件拷贝到在 你的WEB-INF/lib目录中。此外,你需要在你的web.xml文件中配置DocumentStore servlet 。
自定义模块支持其他种类的微软Excel电子表格应用程序的电子表格API's变得非常容易。实现ExcelWorkbook接口,并在components.xml中注册。
<excel:excelFactory>
<property name="implementations">
<key>myExcelExporter</key>
<value>my.excel.exporter.ExcelExport</value>
</property>
</excel:excelFactory>
并用组件标签注册excel命名空间:
xmlns:excel=http://jboss.com/products/seam/excel
然后,设置UIWorkbook类型为myExcelExporter ,那么你自己的输出器就会被使用。默认是”jxl”,但是使用类型”csv”,增加了对CSV(Comma Separated value)的支持。
如果你在IE下(尤其对https)访问生成的文件有问题,确保你在浏览器中没有使用了严格的约束(见http://www.nwnetworks.com/iezones.htm/),在web.xml中也没有使用太严格的安全约束,或者两者的组合。
2、excel配置
web.xml配置如下:
<servlet>
<servlet-name>Document Store Servlet</servlet-name>
<servlet-class>org.jboss.seam.document.DocumentStoreServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Document Store Servlet</servlet-name>
<url-pattern>*.csv</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Document Store Servlet</servlet-name>
<url-pattern>*.xls</url-pattern>
</servlet-mapping>
components.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns="http://jboss.com/products/seam/components"
xmlns:core="http://jboss.com/products/seam/core"
xmlns:persistence="http://jboss.com/products/seam/persistence"
xmlns:security="http://jboss.com/products/seam/security"
xmlns:drools="http://jboss.com/products/seam/drools"
xmlns:bpm="http://jboss.com/products/seam/bpm"
xmlns:mail="http://jboss.com/products/seam/mail"
xmlns:web="http://jboss.com/products/seam/web"
xmlns:transaction="http://jboss.com/products/seam/transaction"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring="http://jboss.com/products/seam/spring"
xmlns:document="http://jboss.com/products/seam/document"
xmlns:excel="http://jboss.com/products/seam/excel"
xsi:schemaLocation=
"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.2.xsd
http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.2.xsd
http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.2.xsd
http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.2.xsd
http://jboss.com/products/seam/bpm http://jboss.com/products/seam/bpm-2.2.xsd
http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.2.xsd
http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.2.xsd
http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.2.xsd
http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.2.xsd
http://jboss.com/products/seam/spring http://jboss.com/products/seam/spring-2.2.xsd
http://jboss.com/products/seam/document http://jboss.com/products/seam/document-2.2.xsd
http://jboss.com/products/seam/excel http://jboss.com/products/seam/excel-2.2.xsd">
<document:document-store use-extensions="true" error-page="/documentMissing.seam"/>