码迷,mamicode.com
首页 > 其他好文 > 详细

poi导出excel

时间:2016-05-30 12:44:59      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

  1 首先要有poi这个jar包
  2 
  3 然后上代码:(这是个被实现的类:
  4 
  5 。。。。。
  6 
  7 Map<String,Object> map=new HashMap<String,Object>();
  8 /*
  9 :要传递过去的数据
 10 map.put("list",‘data1‘);
 11 map.put("list2",‘data2‘);
 12 map.put("list3",‘data3‘);*/
 13 
 14 AExcelView v=new  AExcelView();
 15 
 16 return new ModelAndView(v,map);
 17 
 18  19 
 20 import java.util.Map;
 21 import java.util.List; 
 22 import java.text.SimpleDateFormat;
 23 import javax.servlet.http.HttpServletRequest;  
 24 import javax.servlet.http.HttpServletResponse;  
 25 import java.io.OutputStream;
 26 
 27 import org.apache.poi.hssf.usermodel.HSSFCell;  
 28 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
 29 import org.apache.poi.hssf.util.Region;
 30 import org.apache.poi.hssf.usermodel.HSSFRow;
 31 import org.apache.poi.hssf.usermodel.HSSFSheet;  
 32 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 33 import org.springframework.web.servlet.view.document.AbstractExcelView;
 34 
 35 @SuppressWarnings("unchecked")
 36 public class AExcelView extends AbstractExcelView{
 37     public void buildExcelDocument(Map model, HSSFWorkbook workbook,HttpServletRequest request, HttpServletResponse response) throws Exception {
 38         response.reset();
 39         response.setContentType("APPLICATION/vnd.ms-excel");
 40         response.setHeader("Content-Disposition", "attachment;filename=\"导出表格名称.xls\"");
 41         
 42         HSSFSheet sheet = workbook.createSheet("创建工作簿");
 43         /*
 44         :转换拿到的数据的类型
 45         List list=(List)model.get("list");
 46         List list2=(List)model.get("list2");
 47         List list3=(List)model.get("list3"); */
 48        /* 
 49         :表格的第一行
 50         HSSFRow r=sheet.createRow(0);
 51         HSSFCell c=r.createCell((short)0);
 52         r.createCell((short)1);
 53         r.createCell((short)2);*/
 54 
 55         /*
 56         :强制格式转换,然后做运算
 57         double douNumber1=Double.parseDouble(model.get("list2").toString());
 58         double douNumber2=Double.parseDouble(model.get("list3").toString());
 59         double lastCostTotal=douNumber1-douNumber2;
 60         */
 61         
 62         /* 
 63         :数据连接起来,放在顶行(sheet.createRow(0))
 64         String costStr="合计:"+model.get("list2")+"元";
 65         costStr=costStr+"A:"+model.get("list3")+"元";
 66         c.setCellValue(new HSSFRichTextString(costStr));
 67         */
 68 
 69         /*
 70         :合并3个单元格(四个参数分别是:起始行,起始列,结束行,结束列 )
 71         sheet.addMergedRegion(new Region(0,(short)0,0,(short)2));
 72         */
 73 
 74         /* 
 75         :表格的第二行,一般这行拿来放每一列的标题(如:编号,名称等)
 76         r=sheet.createRow(1);
 77         r.createCell((short)0).setCellValue(new HSSFRichTextString("第一列"));
 78         r.createCell((short)1).setCellValue(new HSSFRichTextString("第二列"));
 79         r.createCell((short)2).setCellValue(new HSSFRichTextString("第三列"));
 80         */
 81 
 82         /*
 83         :日期显示格式
 84         SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
 85         */
 86 
 87         /*
 88         :循环遍历接下来的每一行(所以从i+2开始createRow)
 89         for(int i=0;i<list.size();i++){
 90             Object[] objs=(Object[])list.get(i);
 91             r=sheet.createRow(i+2);
 92             r.createCell((short)0).setCellValue(new HSSFRichTextString(‘显示的数据‘));
 93             r.createCell((short)1).setCellValue(new HSSFRichTextString(‘显示的数据‘));
 94             r.createCell((short)2).setCellValue(new HSSFRichTextString(‘显示的数据‘));    
 95             }
 96         */
 97         OutputStream os = response.getOutputStream();
 98         workbook.write(os);
 99         os.flush();
100         os.close();
101     }
102 }

 

poi导出excel

标签:

原文地址:http://www.cnblogs.com/charles-kun/p/5541979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!