@RequestMapping(value = "/chexport")
    @ResponseBody
    public void chexport(DdClientinfo data,HttpServletRequest request,HttpServletResponse response) throws Exception {
     Map params = new HashMap();
if (data.getIsdn()!=null) {
params.put("isdn",data.getIsdn());
}
if (data.getRktime()!=null) {
params.put("rktime",data.getRktime());
}
if (data.getChtime()!=null) {
params.put("chtime",data.getChtime());
}
List<DdJihua> xls=ddhuaDao.cha(params);
        //excel标题
        String[] title = {"订单编号","订单类别","店面","客户信息","入库时间","出货时间",
          "材料型号","材料类别","厚度","面积","地柜","吊柜","移门面积"};
        //excel文件名
        String fileName = "出入库数据.xls";
        //sheet名
        String sheetName = "出入库数据";          
        String [][] content = new String[xls.size()][];
        for (int i = 0; i < xls.size(); i++) {
         content[i] = new String[title.length];
         DdJihua book = xls.get(i);
            content[i][0] = String.valueOf(book.getDdclientinfo().getIsdn());
            if (book.getDdclientinfo().getLeibie()!=null) {
             content[i][1] = String.valueOf(book.getDdclientinfo().getLeibie());

            if (book.getDdclientinfo().getDianmian()!=null) {
             content[i][2] = String.valueOf(book.getDdclientinfo().getDianmian());
            }
            if (book.getDdclientinfo().getKehu()!=null) {
             content[i][3] = String.valueOf(book.getDdclientinfo().getKehu());
            }
            if (book.getDdclientinfo().getRktime()!=null) {
             content[i][4] = String.valueOf(book.getDdclientinfo().getRktime());
            }
            if (book.getDdclientinfo().getChtime()!=null) {
             content[i][5] = String.valueOf(book.getDdclientinfo().getChtime());
            }                                        
            if (book.getColor()!=null) {
             content[i][6] = String.valueOf(book.getColor());
}
            if (book.getProduct()!=null) {
             content[i][7] = String.valueOf(book.getProduct());
}
            if (book.getThick()!=null) {
             content[i][8] = String.valueOf(book.getThick());
}
            if (book.getSize()!=null) {
             content[i][9] = String.valueOf(book.getSize());
}
            if (book.getDimi()!=null) {
             content[i][10] = String.valueOf(book.getDimi());
}
            if (book.getDgmi()!=null) {
             content[i][11] = String.valueOf(book.getDgmi());
}
            if (book.getDdclientinfo().getYisize()!=null) {
             content[i][12] = String.valueOf(book.getDdclientinfo().getYisize());
}
        }
         //创建HSSFWorkbook 
        HSSFWorkbook wb = Tools.getHSSFWorkbook(sheetName, title, content, null);         //响应到客户端
        try {
            this.setResponseHeader(response, fileName);
            // 创建输出流  
        OutputStream os = response.getOutputStream();            
            wb.write(os);
            os.flush();
            os.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
}    

解决方案 »

  1.   

    Excel2003版最大行数是65536行。Excel2007开始的版本最大行数是1048576行。导出xlsx格式的文件 最大行是100万 如果还超出 可以考虑分多个工作薄了。
      

  2.   


    这代码我建议为了你以后的发展,最好自己重构一下,起码要分层吧,都写在控制层里是什么。
    而且功能模块要分开。导出Excel可以单独写一个工具类方法、
    List<DdJihua> xls=ddhuaDao.cha(params); 你写个集合拆分的方法,按照一定数量拆分下这个集合。
    然后多个集合循环调一下导出Excel的方法就行了