zoukankan      html  css  js  c++  java
  • poi导出excel

      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("创建工作簿");
           
    /*
    :给表格添加样式
    //设置行列
    HSSFSheet sheet = workbook.createSheet("list");
    sheet.setColumnWidth((short) 0, (short) (123 * 35.7));
    //设置行高
    HSSFRow r=sheet.createRow(0);
    r.setHeightInPoints(15);//也就是第一行的行高为15,excel显示20像素
    //设置字体样式
    HSSFFont font = workbook.createFont();
    font.setFontHeightInPoints((short)10); //字体高度
    font.setColor(HSSFFont.COLOR_RED); //字体颜色
    font.setFontName("黑体"); //字体
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //宽度
    font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
          HSSFCellStyle cellStyle = workbook.createCellStyle();
          cellStyle.setFont(font);
        //垂直方向居中
          cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        //水平方向居中
          centerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
       //设置边框
          centerStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);                   
    centerStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); centerStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
    centerStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
    */
    //开始调用样式:
      HSSFCell c0=r.createCell((short)0);
    c0.setCellStyle(center);
    c0.setCellValue(new HSSFRichTextString("第一列"));
    
    
    
     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 }
  • 相关阅读:
    POJ 3259 Wormholes【BellmanFord】
    POJ 2960 SNim【SG函数的应用】
    ZOJ 3578 Matrixdp水题
    HDU 2897 邂逅明下【bash博弈】
    BellmanFord 算法及其优化【转】
    【转】几个Java的网络爬虫
    thinkphp 反字符 去标签 自动加点 去换行 截取字符串 冰糖
    php 二维数组转 json文本 (jquery datagrid 数据格式) 冰糖
    PHP 汉字转拼音(首拼音,所有拼音) 冰糖
    设为首页与加入收藏 兼容firefox 冰糖
  • 原文地址:https://www.cnblogs.com/charles-kun/p/5541979.html
Copyright © 2011-2022 走看看