java利用pol导出excel

来源:互联网 发布:java easyui 编辑:程序博客网 时间:2024/05/22 09:39

jsp代码

<script type="text/javascript">

//导出Excel数据
 
function ShowExport() {
     $.ajax({
       type: "POST",
   url:'${pageContext.request.contextPath}/equipment/tableinfo/excelOut.do',
       success:function(data){
       
        window.location.href="/sncmcc-framework/equipment/tableinfo/excelDownload";
       
            }  
   });
}
 

</script>

java代码




@RequestMapping("/excelOut")
public String exportXxx1(HttpServletRequest request, HttpServletResponse response,
@RequestParam(value="scheduleId", defaultValue="0")int scheduleId)throws IOException{
 
 try {
   Page page = packingPage(request); 
PageList pageList = new PageList(page);
 List<StatementInfo> statementList = statementInfoMapper.getStatementList();
System.out.println("*****"+statementList);

   
// 声明一个工作薄
HSSFWorkbook wb = new HSSFWorkbook();
//声明一个单子并命名
HSSFSheet sheet = wb.createSheet();
//给单子名称一个长度
sheet.setDefaultColumnWidth((short)10);
// 生成一个样式  
HSSFCellStyle style = wb.createCellStyle();
//创建第一行(也可以称为表头)
HSSFRow row = sheet.createRow(0);
//样式字体居中
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//创建HSSFCell对象  
  HSSFCell cell = row.createCell((short) 0); 
   //设置单元格内容  
   cell.setCellValue("物资报表"); 
   cell.setCellStyle(style);  
   //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列  
   sheet.addMergedRegion(new CellRangeAddress(0,0,0,15));  
   //在sheet里创建第二行  
   HSSFRow row2=sheet.createRow(1); 
         //创建单元格并设置单元格内容  
         row2.createCell(0).setCellValue(" ");  
         row2.createCell(1).setCellValue("宝塔中队");
         row2.createCell(2).setCellValue("甘泉中对");  
         row2.createCell(3).setCellValue("姚店中队 ");  
         row2.createCell(4).setCellValue("洛川中队");  
         row2.createCell(5).setCellValue("富县中队 ");  
         row2.createCell(6).setCellValue("延长中队 ");      
         row2.createCell(7).setCellValue("延川中队"); 
         row2.createCell(8).setCellValue("子长中队"); 
         row2.createCell(9).setCellValue("志丹中队");
         row2.createCell(10).setCellValue("黄陵中队 ");      
         row2.createCell(11).setCellValue("黄龙中队");  
         row2.createCell(12).setCellValue("吴起中队");  
         row2.createCell(13).setCellValue("安塞中队");  
         row2.createCell(14).setCellValue("宜川中队");      
         row2.createCell(15).setCellValue("特勤中队");
         cell.setCellStyle(style); 
         
         for (int i = 0; i < statementList.size(); i++) {
String itemname=statementList.get(i).getMaterialname();
List<OrgItemNumber> itemNuber = statementService.getItemNuber(itemname);
System.out.println("+++++++++"+itemNuber);
for (int j = 0; j < itemNuber.size(); j++) {
if (itemNuber!=null) {

String orgname=itemNuber.get(j).getOrgcode();
 
if (orgname=="ORG-05BA426E-37FF-4DE4-B8AA-C7B9B9F7826F"
||"ORG-05BA426E-37FF-4DE4-B8AA-C7B9B9F7826F".equals(orgname)) {
statementList.get(i).setLuochuan(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-0F3912B2-A7AB-4991-8323-46FD7F90B753"
||"ORG-0F3912B2-A7AB-4991-8323-46FD7F90B753".equals(orgname)) {
statementList.get(i).setZichang(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-303C8629-FEBF-43CF-92F8-D569FB444F29"
||"ORG-303C8629-FEBF-43CF-92F8-D569FB444F29".equals(orgname)) {
statementList.get(i).setYaodian(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-841E59AE-7CDE-416B-99B9-5EC55D5DE8AE"
||"ORG-841E59AE-7CDE-416B-99B9-5EC55D5DE8AE".equals(orgname)) {
statementList.get(i).setWuqi(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-8CF8E262-4E5A-44B1-9FD8-CFB2B698491B"
||"ORG-8CF8E262-4E5A-44B1-9FD8-CFB2B698491B".equals(orgname)) {
statementList.get(i).setYanchang(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-8FF50BB4-8FD4-4917-8487-A13ECBB503AD"
||"ORG-8FF50BB4-8FD4-4917-8487-A13ECBB503AD".equals(orgname)) {
statementList.get(i).setBaota(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-92223A1B-7ADE-4C8A-87D7-AF0BAF78686B"
||"ORG-92223A1B-7ADE-4C8A-87D7-AF0BAF78686B".equals(orgname)) {
statementList.get(i).setZhidan(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-4C6ADBE3-6E31-4353-B762-0530FC14A19D"
||"ORG-4C6ADBE3-6E31-4353-B762-0530FC14A19D".equals(orgname)) {
statementList.get(i).setGanquan(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-9D22796C-0731-48DB-9144-91347131DA60"
||"ORG-9D22796C-0731-48DB-9144-91347131DA60".equals(orgname)) {
statementList.get(i).setYichuan(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-A17CA070-276C-4897-9BA9-F29C455FD052"
||"ORG-A17CA070-276C-4897-9BA9-F29C455FD052".equals(orgname)) {
statementList.get(i).setFuxian(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-A8DE0D31-3E12-4D84-8DDE-8110EA9978F6"
||"ORG-A8DE0D31-3E12-4D84-8DDE-8110EA9978F6".equals(orgname)) {
statementList.get(i).setTeqin(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-B2E3DEBF-8F84-492A-8C68-73DE2FD59F77"
||"ORG-B2E3DEBF-8F84-492A-8C68-73DE2FD59F77".equals(orgname)) {
statementList.get(i).setHuanglong(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-BB9DD56E-DE83-4935-9CB4-0126C27BF394"
||"ORG-BB9DD56E-DE83-4935-9CB4-0126C27BF394".equals(orgname)) {
statementList.get(i).setHuangling(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-E104485D-B1C2-45E1-B316-E70369CA8941"
||"ORG-E104485D-B1C2-45E1-B316-E70369CA8941".equals(orgname)) {
statementList.get(i).setYanchuan(itemNuber.get(j).getAmount());
}
if (orgname=="ORG-FDFC9D0D-6789-40F9-ADD3-8C87EAAA1502"
||"ORG-FDFC9D0D-6789-40F9-ADD3-8C87EAAA1502".equals(orgname)) {
statementList.get(i).setAnsai(itemNuber.get(j).getAmount());
}
 
          }
   }
   pageList.setObjectList(statementList);
   List<StatementInfo> s =pageList.getObjectList();
   for (int x = 0; x < s.size(); x++) {
String baota=s.get(x).getBaota();
String ganquan=s.get(x).getGanquan();
String yandian=s.get(x).getYaodian();
String luochuan=s.get(x).getLuochuan();
String fuxian=s.get(x).getFuxian();
String yanchang=s.get(x).getYanchang();
String yanchuan=s.get(x).getYanchuan();
String zichuang=s.get(x).getZichang();
String zhidan=s.get(x).getZhidan();
String huangling=s.get(x).getHuangling();
String huanglong=s.get(x).getHuanglong();
String wuqi = s.get(x).getWuqi();
String anzsai = s.get(x).getAnsai();
String yichuan = s.get(x).getYichuan();
String teqin = s.get(x).getTeqin();
String item = s.get(x).getMaterialname();
 
 //在sheet里创建第三行  
         //System.out.println("x="+x);
               HSSFRow row3=sheet.createRow(x+2);  
               row3.createCell(0).setCellValue(item);  
               row3.createCell(1).setCellValue(baota);  
               row3.createCell(2).setCellValue(ganquan);      
               row3.createCell(3).setCellValue(yandian); 
               row3.createCell(4).setCellValue(luochuan);  
               row3.createCell(5).setCellValue(fuxian);      
               row3.createCell(6).setCellValue(yanchang); 
               row3.createCell(7).setCellValue(yanchuan); 
               row3.createCell(8).setCellValue(zichuang);  
               row3.createCell(9).setCellValue(zhidan);      
               row3.createCell(10).setCellValue(huangling); 
               row3.createCell(11).setCellValue(huanglong);  
               row3.createCell(12).setCellValue(wuqi);      
               row3.createCell(13).setCellValue(anzsai); 
               row3.createCell(14).setCellValue(yichuan); 
               row3.createCell(15).setCellValue(teqin); 
               cell.setCellStyle(style); 
               
               //输出Excel文件  
      FileOutputStream output=new FileOutputStream("c:\\Material.xls");        
             wb.write(output);  
             output.close();            
            
}
System.out.println("ok");
          } 
      return  null;
} catch (Exception e) {
e.printStackTrace();
return this.returnResult(false, "数据查询异常");
}
}
           
@RequestMapping("/excelDownload")
public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {
      System.out.println("*********************");
// 下载本地文件
        String fileName = "Material.xls".toString(); // 文件的默认保存名
         // 读到流中
        InputStream inStream = new FileInputStream("c:\\Material.xls");// 文件的存放路径
        System.out.println("**********"+inStream);
        // 设置输出的格式
         response.reset();
        response.setContentType("bin");
        response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        // 循环取出流中的数据
        byte[] b = new byte[100];
        int len;
        try {
            while ((len = inStream.read(b)) > 0)
                response.getOutputStream().write(b, 0, len);
            inStream.close();
            System.out.println("****ok*****");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }