Spring、SpringMVC、MyBatis、freeMaker框架下之Excel文件导出

1.页面

        <div class="black3">
        <div class="black3_lef">
           <form>
               <button class="but01" onclick="exp();" type="button">EXCEL导出</button>
           </form>
         </div> 
       </div>
       <div>

       <table class="table txtC">
                <thead>
                <tr>
                    <th>学院</th> 
                    <th>录取人数</th>                   
                    <th>现场已报到</th>
                    <th>现场未报到</th>
                    <th>现场报到率</th>
                </tr>
                </thead>
                <tbody>
                    <#assign result= 1 />
                    <#list resModel as result>  
                    <#assign result= 2 />
                    <tr class="emp">
                        <td>${result.xymc?default(0)}</td>
                        <td>${result.xydmCount?default(0)}</td>
                        <td>${result.xcbdNumCount?default(0)}</td>
                        <td>${result.sxcbdNumCount?default(0)}</td>
                        <td>${result.xcbdTate?default(0)}</td>
                    </tr>
                    </#list>
                    <#if result==2>
                    <#list sumList as s>
                    <tr class="emps" style="background: #fcfce2;" >
                        <td>总计</td>
                        <td>${s.allNum?default(0)}</td>
                        <td>${s.xcbdNumCountSum?default(0)}</td>
                        <td>${s.sxcbdNumCountSum?default(0)}</td>
                        <td>${s.xcbdTateSum?default(0)}</td>
                    </tr>
                    </#list>
                    </#if>              
                <#if result==1>
                    <tr>
                        <td colspan="5" class="table_tips_err">-- 无记录 --</td>
                    </tr>           
                </#if>  
                </tbody>
            </table>

2.JS

<script>
//导出
function exp(){
    if($(".emp").length<1){
        $.lt.alert("没有要导出的数据",{title:"提示信息",t:"warning"});
    }else{
    $("#shForm").prop("action","${rc.contextPath}/bg/xcbdtj/qxxcbdtjExcel.html");
    $("#shForm").submit();
    $("#shForm").prop("action","${rc.contextPath}/bg/xcbdtj/qxxcbdtj.html");
    }
    }
</script>

3.控制层:前端请求到控制层中间这部分就不啰嗦了,继续看代码

     * 导出
     * @Description TODO
     * @param request
     * @param response
     * @param ybd
     * @return
     * @throws UnsupportedEncodingException
     * @author XuJD
     * @date 2017-4-1
     */
    public ModelAndView qxxcbdtjExcel(HttpServletRequest request,
            HttpServletResponse response,YxYbdtj ybd) throws UnsupportedEncodingException{
        Map<String,Object> modelMap = new HashMap<String,Object>();
        List<YxYbdtj> resModel=xyCountAppService.getYbdList(ybd);       
        modelMap.put("resModel", resModel);
        modelMap.put("pcId", ybd.getPcId());
        modelMap.put("pcList", xyCountAppService.getPcList(null));
        modelMap.put("sumList", xyCountAppService.getSumList(null));

        response.setHeader("Expires", "0");
        response.setHeader("Pragma" ,"public");
        response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
        response.setHeader("Cache-Control", "public");

        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        response.setHeader("Content-Disposition", "attachment;filename="
                + new String((DateUtil.formatDateTime(DateUtil.DEFAULT_DATE_FROMAT)+"全校现场报到统计信息.xls").getBytes("UTF-8"),
                        "ISO8859_1"));
        return new ModelAndView(qxxcbdtjExcelView).addAllObjects(modelMap);
    }
注:视图qxxcbdtjExcelView是必须要set一下,否则找不到,而这个视图就是我们要导出的Excel表格模版,modelMap就是我们要填充进表格的数据

4.返回的视图(qxxcbdtjExcelView)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>全校现场报到统计Excel列表</title>

<style type="text/css"> 
td{
    padding-top: 1px;
    padding-right: 1px;
    padding-left: 1px;
    mso-ignore: padding;
    color: black;
    font-size: 11.0pt;
    font-weight: 400;
    font-style: normal;
    text-decoration: none;
    font-family: 宋体;
    mso-generic-font-family: auto;
    mso-font-charset: 134;
    mso-number-format: "\@";
    text-align: general;
    vertical-align: middle;
    mso-background-source: auto;
    mso-pattern: auto;
    white-space: nowrap;
    text-align: center;
}

.center{text-align: center;}
</style> 
</head>
<body>
    <form id="form">
               <table width="100%" border="1">
                <thead>
                <tr>
                    <th colspan="5" style="font-weight: bold;">全校现场报到统计Excel列表</th>
                </tr>
                <tr>
                    <th>学院</th> 
                    <th>录取人数</th>                   
                    <th>现场已报到</th>
                    <th>现场未报到</th>
                    <th>现场报到率</th>
                 </tr>
                </thead>
                <tbody>
<#assign result= 1 />
                    <#list resModel as result>  
                    <#assign result= 2 />
                    <tr class="emp">
                        <td>${result.xymc?default(0)}</td>
                        <td>${result.xydmCount?default(0)}</td>
                        <td>${result.xcbdNumCount?default(0)}</td>
                        <td>${result.sxcbdNumCount?default(0)}</td>
                        <td>${result.xcbdTate?default(0)}</td>
                    </tr>
                    </#list>
                    <#if result==2>
                    <#list sumList as s>
                    <tr class="emps" style="background: #fcfce2;" >
                        <td>总计</td>
                        <td>${s.allNum?default(0)}</td>
                        <td>${s.xcbdNumCountSum?default(0)}</td>
                        <td>${s.sxcbdNumCountSum?default(0)}</td>
                        <td>${s.xcbdTateSum?default(0)}</td>
                    </tr>
                    </#list>
                    </#if>              
                <#if result==1>
                    <tr>
                        <td colspan="5" class="table_tips_err">-- 无记录 --</td>
                    </tr>           
                </#if>  
            </table>
         </form>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值