zoukankan      html  css  js  c++  java
  • 进阶之路005 增删改查/数据导入导出之导出功能

    1,在pom.xml中注意添加poi依赖

    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
    </dependency>

    2,//Controller层

    /**
    * 导出
    */
    @RequestMapping("/heroDownLoad")
    public R heroDownLoad(HttpServletResponse response ,@RequestParam Map<String, Object> params){
    sysHeroService.downLoadList(response);
    return R.ok();
    }

    3,//Service接口

    //导出
    void downLoadList(HttpServletResponse response);

    4,//接口实现类

    //导出表单
    @Override
    public void downLoadList(HttpServletResponse response) {
    try {
    String title="XXX表信息.xlsx";
    XSSFWorkbook workbook = new XSSFWorkbook();
    response.setCharacterEncoding("utf-8");
    //以下设置格式
    response.setHeader("conent-type", "application/octet-stream");
    response.setContentType("application/vnd.ms-excel;charset=utf-8");
    response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
    response.setHeader("charset", "utf-8");
    response.setHeader("content-disposition","attachment;filename="+new String(title.getBytes("gbk"), "ISO8859-1"));
    /*--------------------------------------------------------------------------------*/
    OutputStream os = response.getOutputStream();
    XSSFSheet sheet=workbook.createSheet("text");
    //创建第一行标题行
    XSSFRow row=sheet.createRow(0);//创建标题行
    XSSFCell id=row.createCell(0);
    id.setCellValue("属性");
    XSSFCell enHeroName=row.createCell(1);
    enHeroName.setCellValue("属性1");
    XSSFCell heroName=row.createCell(2);
    heroName.setCellValue("属性2");
    XSSFCell title01=row.createCell(3);
    title01.setCellValue("属性3");
    /*----------------------------------------------------------------------------------*/
    //开始获取需要导入到excel中的数据
    List<SysXxxEntity> list=sysXxxDao.getXxx(null,null,null,null);
    int dataIndex=1;//取行索引
    for(SysXxxEntity sysXxxEntity:list)
    {
    XSSFRow datarow=sheet.createRow(dataIndex);//创建数据的第一行
    XSSFCell 属性Date=datarow.createCell(0);
    属性.setCellValue(sysXxxEntity.get属性());

    XSSFCell 属性1Date=datarow.createCell(1);
    属性1.setCellValue(sysXxxEntity.get属性1());

    XSSFCell 属性2Date=datarow.createCell(2);
    属性2.setCellValue(sysXxxEntity.get属性2());

    XSSFCell 属性3Date=datarow.createCell(3);
    属性3.setCellValue(sysXxxEntity.get属性3());
    dataIndex++;
    }
    workbook.write(os);
    os.flush();
    os.close();
    workbook.close();
    }
    catch (Exception e) {
    System.out.println(e);
    }

    }

  • 相关阅读:
    易宝支付Demo,生产中封装成简洁的代付接口,不用request如何获取项目运行时的真实路径(转)
    java之IO流的关闭
    Java IO包装流如何关闭?
    qt5.9模块
    九款免费轻量的 AutoCAD 的开源替代品推荐
    QT pro 添加带空格的路径以及添加库文件的正确方法
    QT添加openssl的方法
    手机芯战!麒麟与骁龙上演难分胜负的技术竞速赛(2013以后,芯片和基带都集成到一起去了)
    使用redis缓存加索引处理数据库百万级并发
    TF.Learn
  • 原文地址:https://www.cnblogs.com/pureray-hui/p/12371994.html
Copyright © 2011-2022 走看看