poi导出excel

导出当页:

        js:

var rows = $('#dd').datagrid('getRows');
	if(rows!=""){
		var form = $("<form>");
	    form.attr('style', 'display:none');
	    form.attr('target', '');
	    form.attr('method', 'post');
	    form.attr('action', $("#path").val()+'/cust/exportCustCustMember');

	    var input1 = $('<input>');
	    input1.attr('type', 'hidden');
	    input1.attr('name', 'item');                            
	    input1.attr('value', JSON.stringify($('#dd').datagrid('getRows')));//将表格数据转成json字符串
         //getSelections 导出选中额
	    var titles=ale();
	    var input2 = $('<input>');
	    input2.attr('type', 'hidden');
	    input2.attr('name', 'titles');
	    input2.attr('value', titles);   
	    
	    var fields=getFields();
	    var input3 = $('<input>');
	    input3.attr('type', 'hidden');
	    input3.attr('name', 'fields');
	    input3.attr('value', fields);

	    $('body').append(form);
	    form.append(input1);
	    form.append(input2);
	    form.append(input3);
	    
	    form.submit();
	    form.remove();
	}else{
		$.messager.alert("消息提示", "没有需要导出的数据!", "error");
	}
	
//获取title
function ale(){
	var opts = $('#dd').datagrid('getColumnFields'); //这是获取到所有的FIELD
	var colName=[];
	for(i=2;i<opts.length-3;i++)
	{
	var col = $('#dd').datagrid( "getColumnOption" , opts[i] );
	colName.push(col.title);//把TITLEPUSH到数组里去
	}
	return colName.join(",");
}

function getFields(){
	var opts = $('#dd').datagrid('getColumnFields'); //这是获取到所有的FIELD
	var colName=[];
	for(i=2;i<opts.length-3;i++)
	{
	var col = $('#dd').datagrid( "getColumnOption" , opts[i] );
	colName.push(col.field);//把TITLEPUSH到数组里去
	}
	return colName.join(",");
}

controller:

@RequiresPermissions(value = { "cust:children:view", "cust:other:view", "cust:tea:view" }, logical = Logical.OR)
	@RequestMapping("/cust/exportCustCustMember")
	@ResponseBody
	public void exportXLS0(@RequestParam("item") String item, String titles, String fields,
			HttpServletResponse response) throws IOException {

        //反序列化表格数据
		List<CustMemberQueryModel> jsonToList = StringUtils.jsonToList(item, CustMemberQueryModel.class);
		for (CustMemberQueryModel custMemberQueryModel : jsonToList) {
			if ("0".equals(custMemberQueryModel.getCheckFlag())) {
				custMemberQueryModel.setCheckFlag("未审批");
			} else if ("1".equals(custMemberQueryModel.getCheckFlag())) {
				custMemberQueryModel.setCheckFlag("已审批");
			}

			if ("1".equals(custMemberQueryModel.getSex())) {
				custMemberQueryModel.setSex("男");
			} else if ("2".equals(custMemberQueryModel.getSex())) {
				custMemberQueryModel.setSex("女");
			} else if ("0".equals(custMemberQueryModel.getSex())) {
				custMemberQueryModel.setSex("未知");
			}

		}
		SerializeUtil serializeUtil = new SerializeUtil();
		serializeUtil.exportXLS(response, titles, fields, jsonToList, response.getOutputStream(), "custMember");

	}

导出全部:

       js:

var data = $('#dd').datagrid('getData');
	    	if (data.total == 0) {
	    		$.messager.alert("消息提示", "没有需要导出的数据!", "error");
	    		return false;
	    	}
	    	var lgCustId=$("#LgCustId").val();
	    	var lgAcctId=$("#LgAcctId").val();
	    	var capDateBegin=$("#capDateBegin").val();
	    	var capDateEnd=$("#capDateEnd").val();
	    	
	    	var form = $("<form>");
	        form.attr('style', 'display:none');
	        form.attr('target', '');
	        form.attr('method', 'post');
	        form.attr('action', $("#path").val()+'/mch/exportAllBasicStatics?capDateBegin='+capDateBegin+'&capDateEnd='+capDateEnd+'&custId='+lgCustId+'&acctId='+lgAcctId);
	
	        var titles=ale();
	        var input2 = $('<input>');
	        input2.attr('type', 'hidden');
	        input2.attr('name', 'titles');
	        input2.attr('value', titles);
	        var fields=getFields();
	        var input3 = $('<input>');
	        input3.attr('type', 'hidden');
	        input3.attr('name', 'fields');
	        input3.attr('value', fields);
	
	        $('body').append(form);
	        form.append(input2);
	        form.append(input3);
	        
	        form.submit();
	        form.remove();


function ale(){
	var opts = $('#dd').datagrid('getColumnFields'); //这是获取到所有的FIELD
	var colName=[];
	for(i=0;i<opts.length;i++)
	{
	var col = $('#dd').datagrid( "getColumnOption" , opts[i] );
	colName.push(col.title);//把TITLEPUSH到数组里去
	}
	return colName.join(",");
};

function getFields(){

	var opts = $('#dd').datagrid('getColumnFields'); //这是获取到所有的FIELD
	var colName=[];
	for(i=0;i<opts.length;i++)
	{
	var col = $('#dd').datagrid( "getColumnOption" , opts[i] );
	colName.push(col.field);//把TITLEPUSH到数组里去
	}
	return colName.join(",");
}

  controller:

//导出商户基本统计
	@RequiresPermissions(value={"mch:mchstatistics:view"},logical=Logical.OR)
	@ResponseBody
	@RequestMapping("/mch/exportAllBasicStatics")
	public void exportAllBasicStatics(String titles, String fields, HttpServletResponse response,String capDateBegin,String capDateEnd,String custId,String acctId) throws IOException{
		
		/*acctId="990001000001";*/
		capDateBegin = capDateBegin.replaceAll("-", "");
		capDateEnd = capDateEnd.replaceAll("-", "");
		BasePageRequest<AcctMchReportQueryCondModel> req = new BasePageRequest<AcctMchReportQueryCondModel>();
		AcctMchReportQueryCondModel acctMchReportQueryCondModel = new AcctMchReportQueryCondModel();
		
		acctMchReportQueryCondModel.setCustId(custId);
		acctMchReportQueryCondModel.setCapDateBegin(capDateBegin);
		acctMchReportQueryCondModel.setCapDateEnd(capDateEnd);
		acctMchReportQueryCondModel.setMchAcctId(acctId);
		req.setObj(acctMchReportQueryCondModel);
		BasePageResponse<MchBizModel> rep = acctReportProvider.queryStatisticsBaseTotal(custId, req);
		List<MchHistorySummary> showList = new ArrayList<MchHistorySummary>();
		if("0000".equals(rep.getRespCode())){
			List<MchBizModel> objs = rep.getObjs();
			if(objs!=null && objs.size()>0){
				//对子系统进行处理
				BaseResponse selectAll = sharedSysregisterProvider.selectAll();
				SharedSysregisterResponse  sharedSysregisterResponse=(SharedSysregisterResponse )selectAll;
				List<SharedSysregisterView> sharedSysregisterViewList = sharedSysregisterResponse.getSharedSysregisterViewList();
				for(MchBizModel obj:objs){
					if(!acctId.equals(obj.getMchAcctId())){
						continue;
					}
					MchHistorySummary mchHistorySummary = new MchHistorySummary();
					mchHistorySummary.setAcctType(obj.getAcctType());
					mchHistorySummary.setCapDate(obj.getCapDate());
					mchHistorySummary.setCustId(obj.getCustId());
					mchHistorySummary.setMchAcctId(obj.getMchAcctId());
					mchHistorySummary.setMchName(obj.getMchName());
					mchHistorySummary.setMealSeq(obj.getMealSeq());
					mchHistorySummary.setPosCode(obj.getPosCode());
					mchHistorySummary.setTranAmt(obj.getTranAmt());
					mchHistorySummary.setTranNumber(obj.getTranNumber());
					for(SharedSysregisterView ssv:sharedSysregisterViewList){
						if(obj.getSysCode().toString().equals(ssv.getSysCode().toString())){
							mchHistorySummary.setSysCode(ssv.getSysCode()+"-"+ssv.getSysName());
						}
					}
					if(mchHistorySummary.getSysCode()==null || "".equals(mchHistorySummary.getSysCode())){
						mchHistorySummary.setSysCode("未知");
					}
					showList.add(mchHistorySummary);
				}
			}
		}
		
		SerializeUtil serializeUtil = new SerializeUtil();
		serializeUtil.exportXLS(response, titles, fields, showList, response.getOutputStream(), "商户基本统计");
	}

 

SerializeUtil工具类:

package com.synjones.cloudcard.mng.gateway.web.shared.localService.utils;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.httpclient.util.DateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.util.IOUtils;
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;

@SuppressWarnings("unchecked")
public class SerializeUtil {
	private static final JdkSerializationRedisSerializer jdkSerializationRedisSerializer = new JdkSerializationRedisSerializer();

    /**
     * 序列化对象
     * @param obj
     * @return
     */
    public static <T> byte[] serialize(T obj){
        try {
            return jdkSerializationRedisSerializer.serialize(obj);
        } catch (Exception e) {
            throw new RuntimeException("序列化失败!", e);
        }
    }

    /**
     * 反序列化对象
     * @param bytes 字节数组
     * @param cls cls
     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> T deserialize(byte[] bytes){
        try {
            return (T) jdkSerializationRedisSerializer.deserialize(bytes);
        } catch (Exception e) {
            throw new RuntimeException("反序列化失败!", e);
        }
    }

	public void exportXLS(HttpServletResponse response,String titles,String fields,List<?> jsonToList,ServletOutputStream out, String type){
        try {
            String workbookName =type+ "表格"
                    + DateUtil.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss") + ".xls";
            
            //专治中文乱码
            String fileName = new String(workbookName.getBytes("gb2312"), "ISO8859-1" );
            
        	//创建HSSFWorkbook对象(excel的文档对象)  
            @SuppressWarnings("resource")
			HSSFWorkbook wb = new HSSFWorkbook();  
    		//建立新的sheet对象(excel的表单)  
    		HSSFSheet sheet=wb.createSheet(); 
    		//在sheet里创建第一行
    		HSSFRow row1=sheet.createRow(0);
    		//将表头插入
    		String[] split = titles.split(",");
    		for (int i = 0; i < split.length; i++) {
    			if(!"编辑".equals(split[i])&&!"删除".equals(split[i])&&!"修改".equals(split[i])){
    				row1.createCell(i).setCellValue(split[i]); 
    			}
			}
    		
    		String[] split2 = fields.split(",");
    		SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		for (int i=0;i<jsonToList.size();i++){
    			HSSFRow row2=sheet.createRow(1+i);
    			Map<String, Object> cardInfoModelMap = (Map<String, Object>) FormatUtils.convertBean2MapForIngoreserialVersionUID(jsonToList.get(i));
    			for (int j=0;j<split.length;j++){
    				if(cardInfoModelMap.get(split2[j])!=null){
    					if(cardInfoModelMap.get(split2[j]) instanceof Date){
    						row2.createCell(j).setCellValue(dateFormater.format(cardInfoModelMap.get(split2[j])));
    					}else{
    						row2.createCell(j).setCellValue(cardInfoModelMap.get(split2[j]).toString());
    					}
    				}
    			}
    		}
    		
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            wb.write(os);
            byte[] data = os.toByteArray();
            // 放到response中推到前台
            response.setContentType("application/x-download");
            response.addHeader("Content-Disposition","attachment;filename=" + fileName);
            InputStream fileStream = new ByteArrayInputStream(data);
            IOUtils.copy(fileStream, out);
        }catch(Exception e){
        	e.printStackTrace();
        }finally{
        	try {
				out.close();
			} catch (IOException e) {
			}
        }
	}


	
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值