在JSF的开发中,我们也常常会用到导出Excel的功能,以下代码是我在开发中的测试小实例:
首先是展示页面testExcel.xhtml:
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:c="http://java.sun.com/jstl/core">
<!--引用统一的模板-->
<ui:composition template="pages/templates/Demotemplate.xhtml">
<!--header区域-->
<ui:define name="pageHeader">导出Excel界面</ui:define>
<!--body区域-->
<ui:define name="body">
<h:form>
<h:commandButton action="#{loginC.getExcel}" value="导出Excel"/>
</h:form>
</ui:define>
</ui:composition>
</html>
在manageBean为loginC里面的实现方法为:
public void getExcel(){
System.out.println("in the method of getExcel()!! ");
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
ExcelBaseBean te = new ExcelBaseBean();
te.setColnumHeader("ID");
te.setColnumHeader("姓名");
te.setColnumHeader("性别");
te.setColnumHeader("出生日期");
List list = userdao.getAllUser();
HSSFWorkbook wb;
response.reset();//清空输出流
response.setContentType("application/ms-excel");//定义输出类型
try {
wb = te.makeExcel(list);
response.setHeader("Content-Disposition", "attachment;filename="
+ new String("导出excel".getBytes("gb2312"), "ISO8859-1")
+ ".xls");
wb.write(response.getOutputStream());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
FacesContext.getCurrentInstance().responseComplete(); //这语句很重要 如果不写,则会出现导出的Excel中内容为提交页面的代码,而不能显示出真正的查询的数据;
}
这里我用的是apache的poi实现生成Excel的功能(数据路用的是ibatis),以下是实现生成Excel的一个工具类:
public class ExcelBaseBean {
private List headerList = new ArrayList();
/*
* 该方法用于显示excel表格的第一行的数据(每一列数据的标题)
* */
public void setColnumHeader(String titleHeader){
headerList.add(titleHeader);
}
/*
* 该方法用于构造生成excel表格;
* */
public HSSFWorkbook makeExcel(List list) throws Exception{
System.out.println("in the method of makeExcel!!");
HSSFWorkbook book=new HSSFWorkbook();
HSSFSheet sheet=book.createSheet("sheet1");
HSSFRow row;
HSSFCell cell;
int start = 0;
if(headerList != null && headerList.size() > 0 ){
start = 1;
row=sheet.createRow(0);
for(int i = 0;i < headerList.size();i++){
cell = row.createCell(i);
String v = (String) headerList.get(i);
cell.setCellValue(v);
}
}
for(int i = start;i < list.size();i++){
row = sheet.createRow(i);
LinkedHashMap mapValue = (LinkedHashMap) list.get(i);
Iterator it = (Iterator) mapValue.entrySet().iterator();
int cellSum = 0;
while(it.hasNext()){
Map.Entry e = (Map.Entry) it.next();
cell = row.createCell(cellSum);
cell.setCellValue(e.getValue().toString());
cellSum++;
}
}
return book;
}
}
分享到:
相关推荐
POI读取并导出Excel(JSF Bean 页面的...通过使用POI库和JSF Bean,可以实现读取和导出Excel文件的功能,并且可以实现下载地址的可选性。同时,需要注意字符编码的处理和文件流的处理,以确保文件的正确传输和下载。
通过以上步骤,我们可以在JSF应用中实现生成Excel文件并提供给客户端下载的功能。这种实现方式不仅提高了系统的灵活性,还极大地提升了用户体验。此外,Apache POI库的强大功能也为开发者提供了更多定制化选项,使得...
"报表导出excel word pdf html"这个主题涵盖了将数据导出为不同格式的技术,这些格式都是日常工作和交流中常用的文档类型。以下是关于这些格式以及如何在Java环境中实现导出的详细知识: 1. Excel:Microsoft Excel...
生成Excel并在客户端下载的JSF实现
在这个场景中,"JSF+Spring+Hibernate配置以及分页查询和Excel文件导出"是一个典型的企业级应用开发组合。下面将详细阐述这些技术及其整合方式。 1. JavaServer Faces (JSF): JSF是一种Java标准的MVC(模型-视图-...
### 文件下载:使用POI导出Excel文档 在日常工作中,我们经常需要处理大量数据,并将其以Excel格式导出供用户下载。Java中一个非常强大的工具包——Apache POI可以帮助我们实现这一需求。Apache POI是一个用于读写...
JSF提供了组件和API来实现分页功能,允许用户按页面浏览数据。在后台,Spring和JDBC配合,根据当前页码和每页条目数量来执行相应的SQL查询。 5. **数据导入和导出**:在企业应用中,数据导入和导出是常见的需求。...
在标题和描述中,我们可以看到使用ADF来导出Excel 2007文件的需求。Excel 2007是Microsoft Office系列中的一个电子表格软件,它使用XLSX格式来存储数据。为了实现Excel 2007文件的导出,我们需要使用POI库。 POI...
JXL提供了`Workbook`类来代表整个Excel工作簿,`Sheet`类代表工作簿中的单个表格,而`Cell`类则对应Excel中的单个单元格。 **步骤3:替换EL表达式** 遍历Excel模板中的每个单元格,检查是否存在EL表达式。如果存在...
Java编程语言在处理数据时,有时需要与Microsoft Excel(.xls)文件进行交互,以便导入、导出或分析数据。在这种情况下,`jxl.jar`库是一个非常实用的工具,它允许开发者用Java轻松地读取和写入Excel文件。`jxl.jar`...
本系统中的题库可以导出成一定格式的Excel文件,方便备份保存;也可以从符合格式规范的Excel文件中直接将题库导入到系统中,大大方便题库的快速编辑。 3、企业级技术性能,支持大并发数据访问。本系统采用JAVA技术...
将DataTable的内容导出成Excel与PDF。支持安全扩展。 FacesTrace模块提供跟踪JSF Web应用程序的各种工具包括:JSF LifeCycle可视化查看器;性能跟踪器; Log4J适配器;FacesMessage监听器;组件树可视化查看器
2. **集成方便**:该插件易于集成到现有的JSF应用中,只需要添加相应的依赖,就可以利用其丰富的报表功能。 3. **多种输出格式**:支持在Web浏览器中直接显示报表,同时也允许用户选择不同的输出格式进行下载,如...
将DataTable的内容导出成Excel与PDF。支持安全扩展。 3、FacesTrace模块提供跟踪JSF Web应用程序的各种工具包括:JSF LifeCycle可视化查看器;性能跟踪器; Log4J适配器;FacesMessage监听器;组件树可视化查看器。
在SSH2中,它们可以帮助开发者读写Excel数据,进行数据导入导出,或者生成报表。 3. **jfreechart-1.0.12.jar**: JFreeChart是一个Java图形库,可以创建各种统计图表,如折线图、柱状图、饼图等。在SSH2框架中,它...
3. **Oracle_ADF_EXCEL例子.doc** - ADF支持数据导出到各种格式,这里可能展示了如何将ADF数据导出为Excel格式,供用户进一步分析或处理。 4. **ADF分页forEach.doc** 和 **ADF 分页 Iterator.doc** - 这两份文档...
这些库文件的组合,说明了项目不仅仅局限于基本的业务逻辑实现,还包含了报表生成、数据可视化、XML处理、Excel操作以及数据库连接等功能,使得人力资源管理系统更加全面和强大。开发者需要对Java EE、SSH框架、...
6. **打印与导出**:支持表格的打印预览和导出为Excel、PDF等多种格式,方便数据共享和保存。 7. **兼容性与跨平台**:兼容主流的浏览器,如Chrome、Firefox、IE等,同时也适用于各种Java Web框架,如Spring、Struts...
`p:dataExporter`组件用于导出Excel文件,`target`属性指定需要导出的数据表格ID,`fileName`属性设置下载文件的名称,`preProcessor`则可以自定义预处理函数,对导出的数据进行额外的处理。 需要注意的是,此解决...
- 报表生成模块:生成工资单、部门薪资统计等报表,支持导出为Excel或PDF格式。 - 安全性:确保数据的安全传输,采用HTTPS协议,敏感信息加密存储。 通过这样的JavaWeb工资管理系统,企业可以高效、准确地处理...