`

Java导出Excel简单实现<二>

    博客分类:
  • JAVA
 
阅读更多
pom依赖
<dependency>
      <groupId>org.apache.poi</groupId>
       <artifactId>poi</artifactId>
       <version>3.8</version>
</dependency>
controller接口方法:
   public void exportAppUserOrderRecordList(@RequestParam Map<String, Object> params, HttpServletResponse response) throws IOException {

        ServletOutputStream sos = null;

        try{

            List appUserDtoList = new ArrayList();
            response.reset();
            sos = response.getOutputStream();
            HSSFWorkbook workbook = orderRecordService.buildHSSFWorkbook(this.buildTableHead(),appUserDtoList);
            workbook.write(sos);
            response.setContentType("application/octet-stream;charset=UTF-8");
            String fileName = new StringBuilder("用户导出").append("-").append(DateUtils.format(new Date(),"yyyyMMddHH")).toString();
            response.setHeader("Content-Disposition","attachment; filename="+ URLEncoder.encode(fileName +".xls", "utf-8"));
//            response.setHeader("Pragma", "public");
//            response.setHeader("Cache-Control","public");
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try {
                sos.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
            sos.close();
        }
    }


service接口实现方法:
   public <T> HSSFWorkbook buildHSSFWorkbook(Map<String, String> map, List<T> dataset) {
        // 声明一个工作薄
        HSSFWorkbook workbook = new HSSFWorkbook();
        // 生成一个表格  - sheet页的名称
        HSSFSheet sheet = workbook.createSheet("用户申请导出");
        // 设置表格默认列宽度为15个字节
        sheet.setDefaultColumnWidth(15);

        // 产生表格标题行  下标从0开始
        HSSFRow row = sheet.createRow(0);

        List<String> list = Arrays.asList(map.keySet().toArray(new String[map.keySet().size()]));

        for (int i = 0; i <list.size(); i++){
            HSSFCell cell = row.createCell(i);
            cell.setCellValue(list.get(i));
        }

        for(int i=0;i<dataset.size();i++){
            row = sheet.createRow(i+1);
            List<String> fileNameList = Arrays.asList(map.values().toArray(new String[map.values().size()]));
            for (int j = 0; j < fileNameList.size(); j++){
                HSSFCell cell = row.createCell(j);
                String value = null;
                try{
                    value = org.apache.commons.beanutils.BeanUtils.getProperty(dataset.get(i), fileNameList.get(j));
                    //value = dataset.get(i).get(fileNameList.get(j));
                }catch (Exception e){
                    e.printStackTrace();
                    value=null;
                    log.error("【用户申请记录导出】】异常" + fileNameList.get(j),e);
                }
                cell.setCellValue(value);
            }
        }
        log.info("【用户申请记录导出】条目:{}" + dataset.size());
        return workbook;
    }

 

private Map<String, String> buildTableHead() {
    Map<String,String> map = new LinkedHashMap<String,String>();
    map.put("用户ID","userId");
    map.put("用户名", "userName");
    map.put("手机号", "mobile");
    map.put("来源渠道", "channel");
    map.put("申请次数", "applyCount");
    map.put("创建时间", "createTimeStr");
    map.put("更新时间", "modifyTimeStr");
    map.put("业务状态", "statusStr");
    return map;
}

 

 

参考地址:

https://blog.csdn.net/jimmy609/article/details/41038537   更大数量看这里

 

 

分享到:
评论

相关推荐

    JAVA将数据按指定格式导出为EXCEL和从EXCEL读相关的内容视频教程.rar

    &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;读入 &lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.*;&lt;br&gt;import org.apache.poi.poifs.filesystem.*;&lt;br&gt;import java.io....

    Java实现Excel导入导出

    Map&lt;Integer, Object[]&gt; empinfo = new TreeMap&lt;&gt;(); int index = 1; empinfo.put(index++, new Object[]{"销售单号", "销售时间", "会员", "商品总额", "来源", "商品名称/属性", "数量", "单价"}); for ...

    Java基于POI的导入导出excel功能,附带测试功能,项目基于Maven,导入即可用,带测试Main方法提供例子

    Java基于POI的导入导出excel功能,附带测试功能,项目基于Maven,导入即可用,带测试Main方法提供例子。 用于导入导出Excel的Util包,基于Java的POI。可将List&lt;Bean&gt;导出成Excel,或读取Excel成List&lt;Bean&gt;、Map...

    spring boot2快速导出excel的java工具类demo源码:export-excel

    spring boot2快速导出excel的示例源码 操作系统:windows10 JAVA jdk:1.8 开发工具:IDEA java架构:spring boot 2.1.6 gitHub:https://github.com/cn-h-jar/exportexcel 作者:jar 运行提示: 启动项目...

    最好用的java读取和导出excel工具

    支持读取excel封装到实体,直接使用输出流导出,使用模版导出,具体使用方法 见jar 中的README.md。源码地址:View on GitOsc https://gitee.com/modoumama/modoumama-excel-utils maven添加 &lt;repositories&gt; ...

    poi导出Excel实例

    &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;poi&lt;/artifactId&gt; &lt;version&gt;3.9&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;poi-ooxml&lt;/artifactId&gt; &lt;version&gt;...

    java编写根据模板导出excel

    根据excel模板动态导出数据库数据 package text; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.servlet....

    java导出excelxml.doc

    按照XML格式保存数据(我们可以用EXCEL打开个表格文件,另存为...一定要注意,并且大小写敏感,但是存起来比较方法,能够满足基于页面数据的按照SHEET多次导出,做了个简单的页面表格导成XML TABLE的例子,可以看看效果

    java导出Excel 时候 相同行合并

    java导出Excel 时候 相同行合并(可合并多列); 已测试通过;

    java导出excel树结构工具类

    该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。

    java导出excel POI jar包

    java导出excel POI jar包 java代码地址http://blog.csdn.net/awenluck/article/details/51488537

    JAVA实现excel的导出.zip

    用Java语言采用接口设计模式、代理设计模式、工厂设计模式实现对excel中的表实现基本的导出(写)功能,把一个对象集合输出到一个excel表中。 【基本功能】 将对象集合导出到Excel表 【扩展功能】 1、自由设置表头 2...

    java实现excel的导入导出(poi详解)

    java实现excel的导入导出(poi详解),经过测试poi效率要比jxl要高很多,特别是数据量大的时候jxl根本无法用肉眼入目,本资源是个可运行项目demo,很有参考价值!

    java导出excel超过65536条记录出错

    java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错

    POI 封装操作Excel(导入、导出)

    * 描述:Excel 导出工具类 &lt;br&gt; * * @package :com.andy.demo.execltools.exports&lt;br&gt; * @file :ExcelToolsExport.java&lt;br&gt; * @author :wanglongjie&lt;br&gt; * @createDate :2015年12月2日下午2:20:18&lt;br&gt; *...

    java导出excel复合表头简单实例

    本资源实现了Excel的简单导出实例,同时也实现了导出Excel复合表头的简单实例,适合一些需要用到导出Excel技术的初学者。

    Excel导入导出工具包

    支持从List&lt;Map&gt;中导出. 支持从List&lt;POJO&gt;中导入导出. 支持从List&lt;POJO里面还有List&lt;POJO&gt;&gt;中导入导出. 支持导出类似课程表结构类型纵表. 支持国际化. 支持数据字典. 支持单元格中下拉框数据校验. 支持自动标红错误...

    java导出exceljava导出exceljava导出excel

    java导出excel

    java导出excel并生成折线图.java

    资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。

    java 导出excel(方法二)

    使用jxl导出excel,包含项目和对应jar包和数据库文件,数据来源于数据库。

Global site tag (gtag.js) - Google Analytics