java导出excl方法

public class RequireExcelController {
@Resource
private RequireService requireService;
@RequestMapping(value="requireExport")
    public String requireExport(HttpServletRequest request,HttpServletResponse response) throws IOException{
        String fileName="基于合同配置制定要货计划";
        //填充projects数据
        List<Require> projects=createData(request);
        List<Map<String,Object>> list=createExcelRecord(projects);
        String columnNames[]={"合同编号","合同名称","签订时间","客户名称","合同属性","业务类型","制作状态","是否完成交底"};//列名
        String keys[]    =   {"contractCode","contractName","contractSingDate","contractCustomerName","countryCode","businessType","requireStatus","isJd"};//map中的key
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        try {
            ExcelUtil.createWorkBook(list,keys,columnNames).write(os);
        } catch (IOException e) {
            e.printStackTrace();
        }
        byte[] content = os.toByteArray();
        InputStream is = new ByteArrayInputStream(content);
        // 设置response参数,可以打开下载页面
        response.reset();
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        response.setHeader("Content-Disposition", "attachment;filename="+ new String((fileName + ".xls").getBytes(), "iso-8859-1"));
        ServletOutputStream out = response.getOutputStream();
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {
            bis = new BufferedInputStream(is);
            bos = new BufferedOutputStream(out);
            byte[] buff = new byte[2048];
            int bytesRead;
            // Simple read/write loop.
            while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
                bos.write(buff, 0, bytesRead);
            }
        } catch (final IOException e) {
            throw e;
        } finally {
            if (bis != null)
                bis.close();
            if (bos != null)
                bos.close();
        }
        return null;
    }
    private List<Require> createData(HttpServletRequest request) {
        // TODO Auto-generated method stub
        //自己实现
    String contractCode = request.getParameter("contractCode");
if(contractCode == null){
contractCode = "";
}
//获取合同名称
String contractName = request.getParameter("contractName");
if(contractName == null){
contractName = "";
}

//获取客户名称
String contractCustomerName = request.getParameter("contractCustomerName");
if(contractCustomerName == null){
contractCustomerName = "";
}

//获取制作状态
String requireStatus = request.getParameter("requireStatus");
if(requireStatus == null){
requireStatus = "";
}
List<String> comtNumberArray = new ArrayList<String>();
if(null != contractCode && !"".equals(contractCode)){
String[] array =contractCode.split(",");
for(int i = 0;i<array.length;i++){
contractCode =  array[i].trim();
comtNumberArray.add(contractCode);
}
}
HashMap<String, Object> vo = new HashMap<String, Object>();
//向vo内填入查询条件
vo.put("contractCode", contractCode);
vo.put("contractName", contractName);
vo.put("contractCustomerName", contractCustomerName);
vo.put("requireStatus", requireStatus);
    //List<Require> list  = requireService.movePage(vo, null, null);
    ArrayList<Require> RequireList = requireService.movePageExcel(vo);
        return RequireList;
    }
    private List<Map<String, Object>> createExcelRecord(List<Require> projects) {
        List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("sheetName", "sheet1");
        listmap.add(map);
        Require project=null;
        for (int j = 0; j < projects.size(); j++) {
            project=projects.get(j);
            Map<String, Object> mapValue = new HashMap<String, Object>();
            mapValue.put("contractCode", project.getContractCode());
            mapValue.put("contractName", project.getContractName());
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");
            if(project.getContractSingDate() ==null){
            mapValue.put("contractSingDate", "");
            } else {
            String Date1 =  format.format(project.getContractSingDate());
            mapValue.put("contractSingDate", Date1);
            }
            mapValue.put("contractCustomerName", project.getContractCustomerName());
            mapValue.put("countryCode", project.getContractCode());
            mapValue.put("businessType", project.getBusinessType());
            mapValue.put("requireStatus", project.getRequireStatus());
            if(project.getIsJd().equals("Y")){
            mapValue.put("isJd", "是");
            } else {
            mapValue.put("isJd", "否");
            }
           
            listmap.add(mapValue);
        }
        return listmap;
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值