社区
Web 开发
帖子详情
jsf怎么导出为excel文件,急呢
Jwens
2009-04-17 01:34:55
在JSF页面用表格形式显示list中的结果,怎么导出为excel文件
...全文
436
4
打赏
收藏
jsf怎么导出为excel文件,急呢
在JSF页面用表格形式显示list中的结果,怎么导出为excel文件
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
专业二三维GIS
2009-04-22
打赏
举报
回复
有一个很简单的方法,不用任何组件就可以导出为Excel:
在jsp页面的开始部分中加入:
<%
response.setContentType("application/vnd.ms-excel;charset=gbk");
%>
那么打开这个页面的时候就会弹出一个下载对话框让用户打开或另存Excel文件. 当然Excel文件的格式和页面是一致的,试试这个:
<%@ page language="java" pageEncoding="gbk"%>
<%
response.setContentType("application/vnd.ms-excel;charset=gbk");
%>
<html>
<body>
<table>
<tr><td>姓名</td><td>性别</td><td>出生日期</td></tr>
<tr><td>张三丰</td><td>男</td><td>2008-8-8</td></tr>
<tr><td>李四花</td><td>女</td><td>2008-12-12</td></tr>
</table>
</body>
</html>
ruoye_2008
2009-04-22
打赏
举报
回复
只要下载JXL这个组件就可以啦!
给个参考网站吧:
http://www.javaeye.com/topic/26574?page=1
tanqimin
2009-04-17
打赏
举报
回复
帮顶~~
phoenixYiYou
2009-04-17
打赏
举报
回复
生成Excel并在客户端下载的JSF实现
Excel这个大家几乎每天都用到的工具,为我们的工作带来了极大的方便。在现在的B/S系统中,特别是很多大型的办公系统中,大量的报表需要处理,导出EXCEL的功能就显得尤为重要了。导出Excel已经是相当成熟的技术了,但是在java中却不是一件容易的事。特别是在JSF架构的系统中,由于使用的人数和学习的资料都很少,实现导出Excel的功能也颇费周折。由于项目的需要,本人需要实现这样的功能,经过对大量代码的改造,实现了JSF下的生成EXCEL并在客户端实现下载的功能。下面的例子中,我用的是POI来生成Excel。Apache的Jakata项目的POI子项目,目标是处理ole2对象。 POI可以到 http://www.apache.org/dyn/closer.cgi/jakarta/poi/下载。 编译好的jar主要有这样4个:poi包,poi Browser包,poi hdf包,poi hssf例程包。实际运行时,需要有poi包就可以了。
在下面的工具类中,我通过private static void downloadFile(String strfileName)这个方法在生成EXCEL以后实现在客户端的下载。在这个类中,这个方法就是经过改造的JSF实现。不过这个工具类有个不足之处就是,传递给downloadFile(String strfileName)的文件名不支持中文,希望大家注意,也希望各位能给出解决办法。
package mj.util.excel;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/** *//**
* 本工具类解决了java到处Excel,并同时实现了客户端下载 不足之处:下载方法传入的文件名不支持中文
*
* @author vincent
*
*/
public class ExcelUtils {
private static String sheetName = "data";
private HSSFWorkbook wb;
private HSSFSheet sheet;
private HSSFRow row;
private HSSFCell cell;
private HSSFFont font;
private HSSFCellStyle cellStyle;
private FileOutputStream fileOut;
public ExcelUtils() {
wb = new HSSFWorkbook();
}
/** *//**
* @param excelName
* excel名称。
* @param list
* 这个list里面存放的是对象数组。数组元素可以转化为字符串显示的。这个对象数组一般对应数据库里的几列。
* @param firstRowValue
*/
public void outputExcel(String excelName, List list, String[] firstRowValue) {
try {
this.createSheet(firstRowValue);
this.setValueToRow(excelName, list);
} catch (Exception ex) {
System.out.print(ex);
}
// System.out.println("文件名是:" + excelName);
downloadFile(excelName);
}
public void outputExcel(String excelName, List list) {
try {
this.setValueToRow(excelName, list);
} catch (Exception e) {
// TODO: handle exception
}
downloadFile(excelName);
}
private void setValueToRow(String excelName, List list) {
// 获得JSF上下文环境
FacesContext context = FacesContext.getCurrentInstance();
// 获得ServletContext对象
ServletContext servletContext = (ServletContext) context
.getExternalContext().getContext();
// 取得文件的绝对路径
excelName = servletContext.getRealPath("/UploadFile") + "/" + excelName;
System.out.println("生成文件的路径是:" + excelName);
Object[] obj;
try {
for (int i = 0; i
row = sheet.createRow(i + 1);
obj = (Object[]) list.get(i);
this.createCell(row, obj);
}
fileOut = new FileOutputStream(excelName);
wb.write(fileOut);
} catch (Exception ex) {
System.out.print("生成报表有误:" + ex);
} finally {
try {
fileOut.flush();
fileOut.close();
} catch (Exception e) {
System.out.println("ExcelUtil.setValueToRow()");
}
}
}
private void createSheet(String[] firstRowValue) {
try {
sheet = wb.createSheet(ExcelUtils.sheetName);
row = sheet.createRow(0);
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
cellStyle = wb.createCellStyle();
cellStyle.setFont(font);
for (int i = 0; i
cell = row.createCell((short) i);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(firstRowValue[i]);
}
} catch (Exception ex) {
System.out.print(ex);
}
}
private void createCell(HSSFRow row, Object[] obj) {
try {
for (int i = 0; i
cell = row.createCell((short) i);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(obj[i].toString());
}
} catch (Exception ex) {
System.out.print(ex);
}
}
/** *//**
*
* 功能说明:根据提供的文件名下载文件,不支持中文文件名
*
* 此方法由yongtree添加,实现文件生成后的下载
*
* @param strfileName
* String
* @return void
*/
private static void downloadFile(String strfileName) {
try {
// 获得JSF上下文环境
FacesContext context = FacesContext.getCurrentInstance();
// 获得ServletContext对象
ServletContext servletContext = (ServletContext) context
.getExternalContext().getContext();
// 取得文件的绝对路径
String excelName = servletContext.getRealPath("/UploadFile") + "/"
+ strfileName;
File exportFile = new File(excelName);
HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext
.getCurrentInstance().getExternalContext().getResponse();
ServletOutputStream servletOutputStream = httpServletResponse
.getOutputStream();
httpServletResponse.setHeader("Content-disposition",
"attachment; filename=" + strfileName);
httpServletResponse.setContentLength((int) exportFile.length());
httpServletResponse.setContentType("application/x-download");
// httpServletResponse.setContentType("application/vnd.ms-excel");
byte[] b = new byte[1024];
int i = 0;
FileInputStream fis = new java.io.FileInputStream(exportFile);
while ((i = fis.read(b)) >0) {
servletOutputStream.write(b, 0, i);
}
} catch (IOException e) {
e.printStackTrace();
}
FacesContext.getCurrentInstance().responseComplete();
}
}
poi读取并
导出
excel
(
jsf
bean 页面的实现)
实现通过poi读取并
导出
excel
,可以实现下载地址是可选的,不是写死的
文件
下载 用poi
导出
excel
文档
文件
下载的
jsf
程序...................(用poi
导出
excel
文档)
JSF
+Spring+Hibernate配置以及分页查询和
Excel
文件
导出
主要是做Web项目时,使用技术
jsf
时,所用到的
生成
Excel
并在客户端下载的
JSF
实现
生成
Excel
并在客户端下载的
JSF
实现的源码与指导,非常实用!
报表
导出
excel
word pdf html
报表
导出
excel
word pdf html java
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章