导出EXCEL表格

需要导入poi.jar包

 

<%@page import="com.founder.commons.web.login.dto.LoginUser"%> <%@page import="com.founder.commons.constant.AppConstant"%> <%@ page language="java" contentType="text/html; charset=UTF-8"%> <%@ include file="/include/meta.jsp"%> 水位终端信息

<% LoginUser user = (LoginUser) request.getSession().getAttribute(AppConstant.CURRENT_USER); String userName = user.getUserName(); String departmentID = user.getDepartmentID(); %>

导出EXCEL

/**
 * 导出EXCEL操作
 */
function xiazaiexcel(){
	/*var simserach = $("#serch_sim").val();
	var stime = $("#serch_stime").val();
	var otime = $("#serch_otime").val();*/
	var dept = $("#serch_dept_hide").val();
	
	var simserach = $("#navistatus").val();
	var stime = $("#createtime1").val();
	var otime = $("#createtime2").val();
	if(createtime1>createtime2){
		$("#stime").val("");
		$("#otime").val("");
		return alert("开始时间不能大于结束时间");
	}
	/*if(stime != ""){
		if(otime == ""){
			return alert("结束时间不能为空");
		}
	}else if(otime != ""){
		if(stime == ""){
			return alert("开始时间不能为空");
		}
	}
	if(stime>otime){
		$("#serch_stime").val("");
		$("#serch_otime").val("");
		return alert("开始时间必须小于结束时间");
	}*/
	var ajaxObj = {url : contextPath+"/business/waterdynamichistory/xiazaiexcel.do" ,
			loading : true,
			data:{
				simserach :simserach,
				stime : stime,
				otime : otime,
				dept : dept
			},
			sucF :function(data){
				if(data == 1){
					alert("已导出到桌面!","ok");
				}else{
					alert("导出失败");
				}
			},
			errorF:function(data){
				alert("导出失败");
			},
	};
	App.ajax(ajaxObj);
}
/**
     * 下载excel
     * @param dept
     * @return
     */
    @RequestMapping(value = "/xiazaiexcel.do")
    @ResponseBody
    public int xiazaiexcel(String simserach, String stime, String otime,
            String dept) {
        return waterExportExcelService.xiazaiexcel(simserach, stime, otime, dept);
    }

package com.founder.szhd.business.water.service;

import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;

import javax.annotation.Resource;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.stereotype.Service;

import com.founder.commons.constant.AppConstant;
import com.founder.szhd.business.massage.msgrecordsendcount.dto.MsgRecordSendCountDTO;
import com.founder.szhd.business.massage.msgrecordsendunsual.dao.MsgRecordSendUnsualDAO;
import com.founder.szhd.business.massage.msgrecordsendunsual.service.IMsgRecordSendUnsualService;
import com.founder.szhd.business.water.dao.WaterDynamicHistoryDAO;
import com.founder.szhd.business.water.dto.WaterDynamicHistoryDTO;

@Service(value = "WaterExportExcelService")
public class WaterExportExcelServiceImpl implements WaterExportExcelService {

    @Resource(name="waterDynamicHistoryDAO")
    private WaterDynamicHistoryDAO waterDynamicHistoryDAO;
    
    
    public String sql(String simserach, String stime, String otime, String dept) {
        String dataSql = " select b.swzmc,a.id,a.sim,a.clsw,a.scsw,a.clsj,a.zddy,a.dybj,a.sjsbfs,a.ylyl,c.datum, c.code,b.lc,a.report_mode from T_SZHD_SWDTSLXX  a left join T_SZHD_SWJBXX b on (a.sim = b.sim or a.swzbh = b.swzbh) and a.swzid = b.id left join T_SZHD_WATER_DATUM c on a.cjjm = c.id ";
        String whereSql = "where 1 = 1";
        if (stime != null && !stime.equals("")) {
            stime = stime + " 00:00:00";
            otime = otime + " 23:59:59";
            whereSql+=    " and  (TO_CHAR(a.clsj,'yyyy/MM/dd hh24:mi:ss') BETWEEN '"+stime+"' AND '"+otime+"') ";
        }
        if (simserach != null && !simserach.equals("")) {
            whereSql += " and ( b.swzmc = '" + simserach + "' or b.id = '" + simserach + "' ) ";
        }
        if(dept!=""&&!AppConstant.DEPARTMENT_ROOTID.equals(dept)){
            whereSql += " and b.gldw = '" + dept + "' ";
        }
        StringBuffer dataHQL = new StringBuffer(dataSql);
        dataHQL.append(whereSql + " order by a.clsj desc");
        return dataHQL.toString();
    }

    @SuppressWarnings("deprecation")
    public int xiazaiexcel(String simserach, String stime, String otime,
            String dept) {
        int back = 0;

        // 第一步,创建一个webbook,对应一个Excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet("水位站历史信息统计记录");
        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
        HSSFRow row = sheet.createRow((int) 0);
        // 第四步,创建单元格,并设置值表头 设置表头居中
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

        HSSFCell cell = row.createCell((short) 0);
        cell.setCellValue("水位站名称");
        cell.setCellStyle(style);
        cell = row.createCell((short) 1);
        cell.setCellValue("终端SIM卡号");
        cell.setCellStyle(style);
        cell = row.createCell((short) 2);
        cell.setCellValue("水位站基准面");
        cell.setCellStyle(style);
        cell = row.createCell((short) 3);
        cell.setCellValue("测量水位(m)");
        cell.setCellStyle(style);
        cell = row.createCell((short) 4);
        cell.setCellValue("测量时间");
        cell.setCellStyle(style);
        cell = row.createCell((short) 5);
        cell.setCellValue("终端电压(V)");
        cell.setCellStyle(style);
        cell = row.createCell((short) 6);
        cell.setCellValue("上传通道模式");
        cell.setCellStyle(style);
        cell = row.createCell((short) 7);
        cell.setCellValue("电压报警");
        cell.setCellStyle(style);

        // 第五步,写入实体数据 实际应用中这些数据从数据库得到,
        List listobjectList = waterDynamicHistoryDAO.findList(this.sql(simserach, stime, otime,dept));
        List<WaterDynamicHistoryDTO> list = WaterDynamicHistoryDTO.toListAboutDatum(listobjectList,4);

        for (int i = 0; i < list.size(); i++) {
            row = sheet.createRow((int) i + 1);
            WaterDynamicHistoryDTO stu = list.get(i);
            // 第四步,创建单元格,并设置值
            row.createCell((short) 0).setCellValue(stu.getSwzmc());
            row.createCell((short) 1).setCellValue(stu.getSwzdid());
            row.createCell((short) 2).setCellValue(stu.getSwzjzmmc());
            row.createCell((short) 3).setCellValue(stu.getClsw());
            row.createCell((short) 4).setCellValue(stu.getClsj());
            row.createCell((short) 5).setCellValue(stu.getZddy());
            row.createCell((short) 6).setCellValue(stu.getSctdms());
            String dybj ="";
            if("0".equals(stu.getDybj())){
                dybj="正常";
            }else if("1".equals(stu.getDybj())){
                dybj="报警";
            }
            row.createCell((short) 7).setCellValue(dybj);
        }
        Calendar calendar = Calendar.getInstance();
        java.util.Date date = calendar.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
        String a = sdf.format(date);
        // 第六步,将文件存到指定位置
        try {
     FileSystemView fsv=FileSystemView.getFileSystemView();
              //将桌面的那个文件目录赋值给file
              File file=fsv.getHomeDirectory();
              //输出桌面那个目录的路径
             /* System.out.println("桌面路径"+file.getPath());*/
            FileOutputStream fout = new FileOutputStream(file.getPath()+"/水位站历史信息统计记录_" + a
                    + ".xls"); // FileOutputStream fout
= new FileOutputStream("E:/水位站历史信息统计记录_" + a+".xls"); wb.write(fout); fout.close(); back = 1; } catch (Exception e) { e.printStackTrace(); back = 2; } return back; } }

/**
 * 查询
 * 
 * @return List
 */
public List findList(String sql) {
	Query query = getHibSession().createSQLQuery(sql);

	return query.list();
}

 

 

 

 

 

 

 

posted @ 2016-04-25 14:11  爱吃西红柿  阅读(752)  评论(0编辑  收藏  举报