zoukankan      html  css  js  c++  java
  • java实现使用poi导出excel

    1.首先下载用的jar包

      poi-4.1.2.jar

      commons-math3-3.6.1.jar

           jar包下载地址:http://poi.apache.org/download.html

           根据系统下载对应的版本

     2.java后端 

    /**

    * 获得excel表头信息

    */

    private static HSSFSheet getHssfSheet (HSSFSheet sheet,String tableHeader[],short cellNumber,HSSFFont font,HSSFCellStyle style) 

    {

    HSSFHeader header = sheet.getHeader();

    header.setCenter("");

    HSSFRow row = sheet.createRow(0); 

            row.setHeight((short)400);

    //sheet的头

            for(int k = 0;k < cellNumber;k++){

                HSSFCell cell = row.createCell((short) k);//创建第0行第k列 

                cell.setCellValue(tableHeader[k]);//设置第0行第k列的值 

                sheet.setColumnWidth((short)k,(short)7000);//设置列的宽度 

                font.setColor(HSSFFont.COLOR_NORMAL); // 设置单元格字体的颜色. 

                font.setFontHeight((short)350); //设置单元字体高度 

                style.setFont(font);//设置字体风格 

                cell.setCellStyle(style); 

            } 

    return  sheet;

    }

    然后在controller里写

    //查询要导出的信息

    List<CkRegistInfo> ckRegistInfos = bdShouYeService.selectGaiByCkRegistInfo(bdShouYe);

    //表头

    String tableHeader[]={"测试1","测试2","测试3","测试4"}; 

    就是excel的这样

    //表的列数

    short cellNumber = (short) tableHeader.length;

    //创建一个excel

    HSSFWorkbook workbook = new HSSFWorkbook();

    //设置表头类型

    HSSFCellStyle style = workbook.createCellStyle();

    style.setAlignment(HorizontalAlignment.CENTER);//居中

    //设置字体

    HSSFFont font = workbook.createFont();

    //创建一个sheet

    HSSFSheet sheet = workbook.createSheet("1");

    HSSFSheet sheet2 = workbook.createSheet("2");

    就对应excel

    //将表头写进excel

    sheet = getHssfSheet(sheet, tableHeader, cellNumber, font, style);

    sheet2 = getHssfSheet(sheet2, tableHeader, cellNumber, font, style);

    //插入数据

    for (int i = 0; i < ckRegistInfos.size(); i++) {

    //得到当前具体信息

    CkRegistInfo ckRegistInfo = ckRegistInfos.get(i);

    //获取下一行

    HSSFRow rows = sheet.createRow((short)(i+1));

    rows.setHeight((short)400);

    //测试1

    HSSFCell cell1 = rows.createCell((short)0);

    cell1 .setCellValue(ckRegistInfo.getName());

    cell1 .setCellStyle(style);

    //测试2

    HSSFCell cell2= rows.createCell((short)1);

    cell2.setCellValue(ckRegistInfo.getCardId());

    cell2.setCellStyle(style);

    //测试3

    HSSFCell cell3= rows.createCell((short)2);

    cell3.setCellValue(ckRegistInfo.getSex());

    cell3.setCellStyle(style);

    //测试4

    HSSFCell cell4= rows.createCell((short)3);

    cell4.setCellValue(ckRegistInfo.getRegistTime());

    cell4.setCellStyle(style);

    //写入流,返回信息

    String fileName ="体检缺项信息";

     try{

           BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());

           response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes(),"ISO-8859-1"));//filename是下载的xls的名 

           workbook.write(out); 

           out.flush(); 

           out.close();

           workbook.close();

     } catch (Exception e) {

             e.printStackTrace();

     }

    3.前端

    function Excel()

    {

    var url = url ;

    var xhr = new XMLHttpRequest();

    xhr.open('post', url, true);

    xhr.responseType = 'blob';

    xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');

    xhr.onload = function (e) {

    if (this.status == 200) {

    var blob = this.response;

    var file_name='信息登记.xls';

     // for IE

    if (window.navigator && window.navigator.msSaveOrOpenBlob) {

    document.getElementById('selectGaiExcel').disabled=false;

    window.navigator.msSaveOrOpenBlob(blob, file_name);

    }

    // for Non-IE (chrome, firefox etc.)

    else {

    document.getElementById('selectGaiExcel').disabled=false;

    var a = document.createElement('a');

    document.body.appendChild(a);

    a.style = 'display: none';

    var url = window.URL.createObjectURL(blob);

    a.href =  url;

    a.download = file_name;

    a.click();

    a.remove();

    window.URL.revokeObjectURL(url);

    }

    }

    }

    xhr.send(JSON.stringify({

    "beginHappenTime" : beginHappenTime,

    "endHappenTime":endHappenTime

    }));

    }

  • 相关阅读:
    UITableView, 表视图
    UINavigationController, 导航控制器
    UIScrollView, 滚动视图
    DelegateAndGestureRecognizer 手势识别
    触摸 响应者链(UITouch,UIIEvent )
    在SharePoint管理中心管理SharePoint Designer设置
    SharePoint在管理中心创建Secure Store
    使用SharePoint管理中心管理服务
    如何在SharePoint管理中心检查数据库架构版本、修补级别和修补程序的常规监控
    SharePoint创建Alternate Access Mapping (AAM)备用访问映射
  • 原文地址:https://www.cnblogs.com/li19950227/p/13330920.html
Copyright © 2011-2022 走看看