java servlet 输出_java Servlet导出数据到Excel文件

package com.lbc.excel.servlet;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.lbc.entity.EquipmentLib;

import com.lbc.entity.OaUsers;

import com.lbc.service.AssetServiceDao;

import com.lbc.service.AssetServiceDaoImpl;

import youngPackage.db.YoungRepository;

/**

* Servlet implementation class ExportExcelServlet

*/

public class ExportExcelServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public ExportExcelServlet() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

this.doPost(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("---------------------------------ExportExcelServlet----------------------------------");

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

YoungRepository youngdb = (YoungRepository)request.getSession().getAttribute("oa_db");

OaUsers user = (OaUsers)request.getSession().getAttribute("oa_user");

String eaPer = (String)request.getSession().getAttribute("currentUserEaPerGrade");

if(youngdb == null){

youngdb = new YoungRepository();

}

AssetServiceDao asd = new AssetServiceDaoImpl(youngdb);

List list = new ArrayList();

if("EA1004".equals(eaPer)){

list = asd.getElByUsernameOrDepartmentOrManager(user.getUsername(),"","ALL","1");

}else if("EA1002".equals(eaPer)){

list = asd.getElByUsernameOrDepartmentOrManager("",user.getDepartment(),"","1");

}

String fileName = "Excel-" + System.currentTimeMillis() + ".xls";//设置导出的文件名称

StringBuffer sb = new StringBuffer(this.gettable(list));//将表格信息放入内存

String contentType = "application/vnd.ms-excel";//定义导出文件的格式的字符串

String recommendedName = new String(fileName.getBytes(),"iso_8859_1");//设置文件名称的编码格式

response.setContentType(contentType);//设置导出文件格式

response.setHeader("Content-Disposition", "attachment; filename=" + recommendedName );//

response.resetBuffer();

//利用输出输入流导出文件

ServletOutputStream sos = response.getOutputStream();

sos.write(sb.toString().getBytes());

sos.flush();

sos.close();

}

private String gettable(List list ){

StringBuffer table = new StringBuffer();

if(list != null && list.size() > 0){

table.append("

序号资产类别资产名称资产数量

table.append("

所在部门使用人状态购置日期开始使用日期");

table.append("

使用年限原值品牌规格型号备注");

String temp = "";

for(int i = 0 ; i < list.size() ; i++){

EquipmentLib el = list.get(i);

if((i+1)%2 == 0){

table.append("

");

}else{

table.append("

");

}

table.append("

"+(i+1)+"");

table.append("

"+el.getFamily()+"");

table.append("

"+el.getName()+"");

table.append("

"+el.getAmount()+"");

table.append("

"+el.getDepartment()+"");

table.append("

"+el.getCurrentUserName()+"");

if("2".equals(el.getStatus())){

temp = "资产转移中";

}else if("4".equals(el.getStatus())){

temp = "报废审核中";

}else {

temp = "正常使用";

}

table.append("

"+temp+"");

table.append("

"+el.getPurchaseDate()+"");

table.append("

"+el.getStartUseDate()+"");

table.append("

"+el.getUseLife()+"");

table.append("

"+el.getValue()+"");

if(el.getBrand() == null ){

table.append("

");

}else{

table.append("

"+el.getBrand()+"");

}

if(el.getSpecifications() == null ){

table.append("

");

}else{

table.append("

"+el.getSpecifications()+"");

}

if(el.getRemark() == null ){

table.append("

");

}else{

table.append("

"+el.getRemark()+"");

}

}

table.append("

");

}

return table.toString();

}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值