JSP实现报表导出

来源:互联网 发布:广州零点互动网络 编辑:程序博客网 时间:2024/06/07 16:22


按钮


<input name="btnQuery" type="button" id="exportExcel" class="scbtn" width="auto"
                               value="<s:text name="user.operating.record.excel" />"/>


事件:


$(function(){
          $("#exportExcel").click(function(){
              window.open("${ctx}/report/playerrpt!findAll.html?"+"excel="+Math.random().toString()+"&dto.platformCode="+$("#platformCode0").val()
              +"&dto.agentCode="+$("#agentCode").val()+"&dto.playerName="+$("#playerName").val()+
              "&dto.gameCode="+$("#gameCode").val()+"&startTime="+$("#startTime").val()+"&endTime="+$("#endTime").val()+
              "&dto.currencyCode="+$("#currencyCode").val()+"&order="+$("#order").val()+"&by="+$("#by").val(),
              "Download PlayerRpt","width=800px,height=300px,left=500px;top=3000px,status=noresizable=no,menubar=no,location=no",false);
          });
        });


新建JSP:


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/includes/taglibs.jsp" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.setContentType("application/vnd.ms-excel"); 
response.addHeader("Content-Disposition", "attachment;filename=PlayerReport.xls");
%>


<!DOCTYPE HTML>
<html xmlns:x="urn:schemas-microsoft-com:office:excel">
  <head>
  <!-- 显示网格线 -->  
<!--[if gte mso 9]><xml>  
            <x:ExcelWorkbook>  
                <x:ExcelWorksheets>  
                    <x:ExcelWorksheet>  
                        <x:Name>玩家报表</x:Name>  
                        <x:WorksheetOptions>  
                            <x:Print>  
                                <x:ValidPrinterInfo />  
                            </x:Print>  
                        </x:WorksheetOptions>  
                    </x:ExcelWorksheet>  
                </x:ExcelWorksheets>  
            </x:ExcelWorkbook>  
        </xml>  
        <![endif]-->  
<!-- 显示网格线 -->  
    <base href="<%=basePath%>">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  </head>
  
  <body>
    <table>
    <thead>
                <tr>
                    <s:if test="#session.WEB_USER.userType == 1 || #session.WEB_USER.userType == 2">
                        <th width="120px" id="agentCode">
                            <s:text name="user.journal.agentcode"/>
                        </th>
                    </s:if>
                    <th width="120px" id="platformCode">
                        <s:text name="user.journal.platformcode"/>
                    </th>
                    <th width="120px"  id="playerName">
                        <s:text name="user.players.playerName"/>
                    </th>
                    <th width="120px"  id="gameCode">
                        <s:text name="user.glog.gamecode"/>
                    </th>
                    <th width="105px">
<s:text name="user.glog.gameinfo" />
</th>
                    <th width="120px"  id="gameType">
                        <s:text name="user.glog.gametype"/>
                    </th>
                    <th width="120px"  id="betWins">
                        <s:text name="user.glog.wins"/>
                    </th>
                    <th width="120px"  id="betPrice">
                        <s:text name="user.glog.price"/>
                    </th>
                    <th width="120px"  id="prizeWins">
                        <s:text name="user.glog.prize"/>
                    </th>
                    <th width="120px"  id="updateTime">
                        <s:text name="user.gamerpt.updatetime"/>
                    </th>
                    <th width="120px"  id="distributeTime">
                        <s:text name="user.gamerpt.distributetime"/>
                    </th>
                    <th width="120px"  id="betTimes">
                        <s:text name="user.gamerpt.bettimes"/>
                    </th>
                    <th width="100"  id="currencyCode">
<s:text name="user.currencyCode" />
</th>
                    <th width="120px">
                        <s:text name="user.gamerpt.rate"/>
                    </th>
                </tr>
                </thead>
    <tbody>
                <c:if test="${list!=null}">
                    <c:set var="betWinsPage" value="0" scope="request"></c:set>
                    <c:set var="betPricePage" value="0" scope="request"></c:set>
                    <c:set var="prizeWinsPage" value="0" scope="request"></c:set>
                    <s:iterator var="s" value="list" status="item">
                        <tr <c:if test="${s.betPrice < s.betWins}">class="bg-green" </c:if> >
                                <%-- <td>
                                    ${s.id}
                                </td> --%>
                                <%-- <s:if test="#session.WEB_USER.userType == 1">
                                <td>
                                    ${s.bossCode}
                                </td>
                                </s:if> --%>
                            <s:if test="#session.WEB_USER.userType == 1 || #session.WEB_USER.userType == 2">
                                <td>
                                        ${s.agentCode}
                                </td>
                            </s:if>
                            <td>
                                    ${s.platformCode}
                            </td>
                            <td>
                                    ${s.playerName}
                            </td>
                            <td>
                                    ${s.gameCode}
                            </td>
                            <td>
                               <s:property value="@cn.edu.tdd.web.action.utils.StringUtil@getGameName(#s.gameCode, #session.WEB_LAGUAGE)"/>
                            </td>
                            <td>
                                <s:property
                                        value="@cn.edu.tdd.core.enums.GameType@getText(#s.gameType, #session.WEB_LAGUAGE)"/>
                            </td>
                            <td>
                                    ${s.betWins}
                            </td>
                            <td>
                                    ${s.betPrice}
                            </td>
                            <td <s:if test="#s.prizeWins > 0"> class="text-darkred"</s:if> >
                                    ${s.prizeWins}
                            </td>
                            <td>
                                    ${s.updateTime}
                            </td>
                            <td>
                                    ${s.distributeTime}
                            </td>
                            <td>
                                    ${s.betTimes}
                            </td>
                            <td>
                                    ${s.currencyCode}
                            </td>
                            <td>
                                <s:property
                                        value="@cn.edu.tdd.web.action.utils.StringUtil@getRTP(#s.betWins, #s.betPrice)"/>%
                            </td>
                            <s:set var="betWinsAmount" value="#s.betWins" scope="request"></s:set>
                            <c:set var="betWinsPage" value="${betWinsPage+betWinsAmount}" scope="request"></c:set>


                            <s:set var="betPriceAmount" value="#s.betPrice" scope="request"></s:set>
                            <c:set var="betPricePage" value="${betPricePage+betPriceAmount}" scope="request"></c:set>


                            <s:set var="prizeWinsAmount" value="#s.prizeWins" scope="request"></s:set>
                            <c:set var="prizeWinsPage" value="${prizeWinsPage+prizeWinsAmount}" scope="request"></c:set>
                        </tr>
                    </s:iterator>
                    <tr>
                        <td colspan="<s:if test="#session.WEB_USER.userType <= 2">3</s:if><s:else>2</s:else>"></td>
                        <td colspan="3"><s:text name="user.gamerpt.rate"/>:<s:property
                                value="@cn.edu.tdd.web.action.utils.StringUtil@getRTP(#request.betWinsPage, #request.betPricePage)"/>%
                        </td>


                        <td><fmt:formatNumber value="${betWinsPage}" pattern="#,#00.0#"/></td>
                        <td><fmt:formatNumber value="${betPricePage}" pattern="#,#00.0#"/></td>
                        <td><fmt:formatNumber value="${prizeWinsPage}" pattern="#,#00.0#"/></td>
                        <td colspan="5"></td>
                    </tr>
                    <tr>
                        <td colspan="<s:if test="#session.WEB_USER.userType <= 2">3</s:if><s:else>2</s:else>"></td>
                        <td colspan="3"><s:text name="user.gamerpt.rate"/>:<s:property
                                value="@cn.edu.tdd.web.action.utils.StringUtil@getRTP(#request.betWins, #request.betPrice)"/>%
                        </td>
                        <td><fmt:formatNumber value="${betWins}" pattern="#,#00.0#"/></td>
                        <td><fmt:formatNumber value="${betPrice}" pattern="#,#00.0#"/></td>
                        <td><fmt:formatNumber value="${prizeWins}" pattern="#,#00.0#"/></td>
                        <td colspan="5"></td>
                    </tr>
                </c:if>
                </tbody>
    </table>
  </body>
</html>


Action:


 //请求新建的页面
String exportExcelFlag = getRequest().getParameter("excel");
dto.setExcelFlag(exportExcelFlag);


返回:if(StringUtil.isNotEmpty(exportExcelFlag)){
return "exportExcel";
}


实体:private String excelFlag;get/set方法


DAO页面处理:
if(StringUtil.isEmpty(dto.getExcelFlag())){
        criteria.setFirstResult(size * (pageIndex - 1));
        criteria.setMaxResults(size);
        }


在公共类中有:
public static HttpServletRequest getRequest(){
return ServletActionContext.getRequest();
}

public static HttpServletResponse getResponse(){
return ServletActionContext.getResponse();
}
阅读全文
0 0
原创粉丝点击