使用poi将数据导出为Excel

在帮别人写一个档案管理系统时需要用到将数据导出为Excel表
下面是用poi实现的一个导出Excel的servlet,导出Excel文件时使用了一个Excel模板template.xls,达到规范格式的目的。
导入poi-3.0.2-FINAL-20080204.jar包就可使用。
	public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("APPLICATION/OCTET-STREAM"); //response设置ContentType响应文档类型
String name=request.getParameter("name");
response.setHeader("Content-Disposition","attachment;fileName=mulu.xls"); //设置请求头fileName是保存文件名
List<MuLu> mulus=dao.getMuLuByName(name); //从数据库里取出目录表内容
String path=request.getRealPath("/"); //取得当前路径
POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream(path+"template.xls")); //读取Excel模版
HSSFWorkbook wb=new HSSFWorkbook(fs); //创建一个工作区 HSSFWorkbook类表示一个工作区
HSSFSheet sheet = wb.getSheetAt(0); //创建一个表 HSSFSheet类表示一个表
HSSFCellStyle style = wb.createCellStyle(); //创建单元格样式 HSSFCellStyle类表示样式
style.setVerticalAlignment(style.VERTICAL_CENTER); //设置垂直居中
for(int i=2;i<mulus.size()+2;i++){
HSSFRow row = sheet.createRow(i); //创建一行 HSSFRow表示一行
row.setHeightInPoints(24); //设置行高
MuLu ml=mulus.get(i-2); //取出表项
HSSFCell cell0=row.createCell((short)0); //创建一个单元格 HSSFCell类表示单元格
cell0.setCellValue(ml.getSxh()); //设置单元格内容
cell0.setCellStyle(style); //设置单元格样式
HSSFCell cell1=row.createCell((short)1);
cell1.setCellValue(ml.getWh());
cell1.setCellStyle(style);
HSSFCell cell2=row.createCell((short)2);
cell2.setCellValue(ml.getZrz());
cell2.setCellStyle(style);
HSSFCell cell3=row.createCell((short)3);
cell3.setCellValue(ml.getTm());
cell3.setCellStyle(style);
HSSFCell cell4=row.createCell((short)4);
cell4.setCellValue(ml.getRq());
cell4.setCellStyle(style);
HSSFCell cell5=row.createCell((short)5);
if(ml.getYh()!=0){
cell5.setCellValue(ml.getYh());
cell5.setCellStyle(style);
}
HSSFCell cell6=row.createCell((short)6);
cell6.setCellValue(ml.getBz());
cell6.setCellStyle(style);
}
try {
wb.write(response.getOutputStream()); //将excel写入response的输出流中
response.getOutputStream().flush(); //刷新IO
response.getOutputStream().close(); //关闭IO
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值