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<EquipmentLib> list = new ArrayList<EquipmentLib>();
        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<EquipmentLib> list ){
    	StringBuffer table = new StringBuffer();
    	if(list != null && list.size() > 0){
    		table.append("<table border=‘1‘><tbody><tr style=‘height: 35px;background-color:#fff1cc;‘><th>序号</th><th>资产类别</th><th>资产名称</th><th>资产数量</th>");
            table.append("<th>所在部门</th><th>使用人</th><th>状态</th><th>购置日期</th><th>开始使用日期</th>");
            table.append("<th>使用年限</th><th>原值</th><th>品牌</th><th>规格型号</th><th>备注</th></tr>");
            String temp = "";
        	for(int i = 0 ; i < list.size() ; i++){
        		EquipmentLib el = list.get(i);
        		if((i+1)%2 == 0){
        			table.append("<tr style=‘height: 35px;‘ bgcolor=‘#EDEDED‘>");
        		}else{
        			table.append("<tr style=‘height: 35px;‘>");
        		}
        		table.append("<td align=‘center‘>"+(i+1)+"</td>");
        		table.append("<td align=‘center‘>"+el.getFamily()+"</td>");
        		table.append("<td align=‘center‘>"+el.getName()+"</td>");
        		table.append("<td align=‘center‘>"+el.getAmount()+"</td>");
        		table.append("<td align=‘center‘ style=‘color:red;‘>"+el.getDepartment()+"</td>");
        		table.append("<td align=‘center‘>"+el.getCurrentUserName()+"</td>");
        		if("2".equals(el.getStatus())){
        			temp = "资产转移中";
        		}else if("4".equals(el.getStatus())){
        			temp = "报废审核中";
        		}else {
        			temp = "正常使用";
        		}
        		table.append("<td align=‘center‘>"+temp+"</td>");
        		table.append("<td align=‘center‘>"+el.getPurchaseDate()+"</td>");
        		table.append("<td align=‘center‘>"+el.getStartUseDate()+"</td>");
        		table.append("<td align=‘center‘>"+el.getUseLife()+"</td>");
        		table.append("<td align=‘center‘>"+el.getValue()+"</td>");
        		if(el.getBrand() == null ){
        			table.append("<td align=‘center‘></td>");
        		}else{
        			table.append("<td align=‘center‘>"+el.getBrand()+"</td>");
        		}

        		if(el.getSpecifications() == null ){
        			table.append("<td align=‘center‘></td>");
        		}else{
        			table.append("<td align=‘center‘>"+el.getSpecifications()+"</td>");
        		}

        		if(el.getRemark() == null ){
        			table.append("<td align=‘center‘></td>");
        		}else{
        			table.append("<td align=‘center‘>"+el.getRemark()+"</td>");
        		}

        	}
        	table.append("</tr></tbody></table>");
        }
    	return table.toString();
    }
}

  

时间: 2024-08-13 22:49:16

java Servlet导出数据到Excel文件的相关文章

CodeIgniterCodeigniter+PHPExcel导出数据到Excel文件

解压压缩包里的Classes文件夹中的内容到application\libraries\目录下,目录结构如下:--application\libraries\PHPExcel.php--application\libraries\PHPExcel(文件夹)修改application\libraries\PHPExcel\IOFactory.php文件--将其类名从PHPExcel_IOFactory改为IOFactory,遵从CI类命名规则.--将其构造函数改为public $this->loa

java代码导出数据到Excel、js导出数据到Excel(三)

jsp内容忽略,仅写个出发按钮: <button style="width: 100px" onclick="expertExcel()" >JS导出Excel</button>           <button style="width: 100px" onclick="expertWord()" >JS导出Word</button>           <button

【代码实现】PHP导入Excel和导出数据为Excel文件

文章来源:PHP开发学习门户 地址:http://www.phpthinking.com/archives/560 有时需要将Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入.另外将mysql数据导出为Excel与本站上篇文章中导出CSV一样,只是将逗号分割符换成制表符,并修改header信息就可以了. 下载源码 本文中,我们沿用本站文章:使用PHP导入和导出CSV文件 中实例的数据表以及html. 1.导入XL

使用PHP导入Excel和导出数据为Excel文件

1.导入XLS PHP-ExcelReader这是一个开源的项目,主要是来解析excel的文件,您可以到http://sourceforge.net/projects/phpexcelreader获取最新版的源码.下载之后解压,主要用到excel文件夹里面的两个文件reader.php和oleread.inc. 导入Xls处理流程:选择xls文件->上传xls文件到服务器->通过PHP-ExcelReader解析excel->批量入库.  include_once("excel

导出数据到Excel文件

第一种方式: [HttpPost] public ActionResult ExportPageOrder(FormCollection form) { try { Response.Charset = "GB2312"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); Response.ContentType = "application/vnd.ms-exce

导出数据为Excel文件---Controller

@Controller @RequestMapping("/vehmileage") public class VehMileageController extends BaseController{ private static final Logger LOG=Logger.getLogger(VehMileageController.class); private static final String FILE_NAME="里程导出"; private st

导出数据为Excel文件-JS

var params=''; if(vahiclePlate!=''){ params='lpn'+vahiclePlate; } if(startTime!=''){ params=params==''?'startTime='+startTime:(params+'&')+'startTime='+startTime; } .....搜索条件 if(params!=''){ params+='&'+'fileName=车队行程统计导出'; params+='&'+'lpnNam

通过LocalReport将rdl文件导出数据到excel文件

protected void sssss_Click(object sender, EventArgs e) { LocalReport report = new LocalReport(); report.ReportPath = @"D:\pdftest.rdl"; DbProviderFactory dbf = DbProviderFactories.GetFactory(); using (IDbConnection con = dbf.CreateConnection())

导出数据为Excel文件---Client2

public class ExportVehMileageClients extends RestfulWSClient<ServiceResponse>{ private static final Logger LOG=Logger.getLogger(ExportVehMileagesClient.class); private static final String WSURL=GET_EXPORTVEHMILEAGES_URL; private static final String