zoukankan      html  css  js  c++  java
  • poi 导出Excel --实战代码(导出一行过一排排那种/工具类导出/复制代码用)--历史保留版,可看最新版

    html代码

       <a class="btn btn-primary fa fa-export" href="javascript:void(0);" onclick="expExcel()"><span>导出excel</span></a>

    js代码

    function expExcel() {
            
            var ids=new Array();
            $("input:checkbox:checked").each(function(){
                ids.push($(this).attr("id"));
            });
            if(ids.length==0){
                alert("请至少选中一条记录");
                return;
            }
            if (confirm("导出选中页面数据?")) {        
                var url = __ctx + '/platform/xxx/xxx/exportExcel.htm?myId='+ ids;
                var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
                if (userAgent.indexOf("compatible") > -1
                        && userAgent.indexOf("MSIE") > -1) {//判断是否IE浏览器
                    window.location.href(url);
                } else {
                    window.open(url, "导出报表");
                }
            }
        }

    java代码1

    @RequestMapping({ "exportExcel" })
        public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
            String[] aryIds = RequestUtil.getStringAryByStr(request, "myId");
            QueryFilter queryFilter = getQuerFilter(request);
            String myIds = "";
    
            for (int i = 0; i < aryIds.length; i++) {
                String tmp = aryIds[i].replace("jqg_jzjxjhGrid_", "");
    
                if (i != aryIds.length - 1) {
                    myIds += "'" + tmp + "',";
                } else {
                    myIds += "'" + tmp + "'";
                }
            }
            queryFilter.addParamsFilter("whereSql", "MY_ID_ in (" + myIds + ")");
            queryFilter.addParamsFilter("orderBySql", "KS ASC");
    
            List<Jzjxjh> query = jzjxjhManager.query(queryFilter);
    
            String title = "xxx计划";
            String[] headers = {"序号","xx","xx","xx","开始","结束","工期","xx","发电类型"};
            Integer[] columnWidth={18,18,18,18,18,18,18,18,18};
            
            String[][] values = new String[query.size()][headers.length];
            for (int i = 0; i < query.size(); i++) {
                Jzjxjh e = query.get(i);
                values[i][0]=e.getXh()+"";
                values[i][1]=e.getDw();
                values[i][2]=e.getJz();
                values[i][3]=e.getRl()+"";
                values[i][4]=sdf.format(e.getKs());
                values[i][5]=sdf.format(e.getJs());
                values[i][6]=e.getGq()+"";
                values[i][7]=e.getLx();
                values[i][8]=e.getZt();
            }
            
            HSSFWorkbook wb = ExportExcelUtil.getHSSFWorkbook(title, headers, values,columnWidth);        
            
            String fileName = "xxxx计划_" + ".xls";
            ExportExcelUtil.exportExcel(request, response, wb, fileName);
        
        }

     java代码2(跟上面1差不多,优点用到了反射类工具类,不用一个个get实体类的数据方便快捷,该工具类也可以从本博客util标签中找)

    @RequestMapping({ "exportExcel" })
        public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {
            String[] aryIds = RequestUtil.getStringAryByStr(request, "myId");
            QueryFilter queryFilter = getQuerFilter(request);
            String myIds = "";
    
            for (int i = 0; i < aryIds.length; i++) {
                String tmp = aryIds[i].replace("jqg_jzjxjhGrid_", "");
    
                if (i != aryIds.length - 1) {
                    myIds += "'" + tmp + "',";
                } else {
                    myIds += "'" + tmp + "'";
                }
            }
            queryFilter.addParamsFilter("whereSql", "MY_ID_ in (" + myIds + ")");
            queryFilter.addParamsFilter("orderBySql", "KS ASC");
    
            List<Jzjxjh> query = jzjxjhManager.query(queryFilter);
    
            String title = "xxx计划";
            String[] headers = {"序号","单位","机组","容量","开始","结束","工期","类型","发电类型"};
            Integer[] columnWidth={18,18,18,18,18,18,18,18,18};
            String[] headersVar = {"xh","dw","jz","rl","ks","js","gq","lx","zt"};
            
            String[][] values = new String[query.size()][headers.length];
            for (int i = 0; i < query.size(); i++) {
                Jzjxjh obj = query.get(i);
                for (int j = 0; j < headersVar.length; j++) {
                    values[i][j]=ReflectUtil.getStringValue(headersVar[j], obj, "yyyy/MM/dd");
                }
                
            }
            
            HSSFWorkbook wb = ExportExcelUtil.getHSSFWorkbook(title, headers, values,columnWidth);        
            
            String fileName = "xxx计划_" + ".xls";
            ExportExcelUtil.exportExcel(request, response, wb, fileName);
        
        }

    适用场景:poi 4.0.1  ,ExportExcelUtil.java可以在本博客util中找

    导出效果

    第一行是合并单元格的一个标题

    第二行是表头

    第三行开始每一列都是数据

    效果图如下

  • 相关阅读:
    SpringBoot-07:SpringBoot整合PageHelper做多条件分页查询
    SpringBoot-06:SpringBoot增删改查一套完整的考试案例
    SpringBoot-05:SpringBoot初运行以及tomcat端口号的修改
    SpringBoot-04:SpringBoot在idea中的俩种创建方式
    SpringBoot-03:SpringBoot+Idea热部署
    SpringBoot-02:SpringBoot中的POM文件详细解释
    SpringBoot-01:什么是SpringBoot?
    SSM-Spring-23:概念《Spring中的事务是什么?》
    二叉查找树 & B(B-)树 & B+树 & B*树
    静态资源缓存与更新
  • 原文地址:https://www.cnblogs.com/rdchen/p/13999056.html
Copyright © 2011-2022 走看看