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 }
  • 相关阅读:
    523 vue组件化高级 插槽slot:slot基本使用,具名插槽,编译作用域,作用域插槽
    522 vue父子组件的访问方式: $children、$refs、$parent
    521 vue子组件向父组件传递数据
    520 vue父组件向子组件传递:props基本用法,props数据验证,props中的驼峰标识
    在 React 组件中使用 Refs 指南
    Flutter 代码开发规范
    Angular ZoneJS 原理
    vue中$refs, $emit, $on, $once, $off的使用
    详解Js加法运算符
    JavaScript 异常
  • 原文地址:https://www.cnblogs.com/charles-kun/p/5541979.html
Copyright © 2011-2022 走看看