fengbin_89 发表于 2013-1-29 08:39:51

query easyui中datagrid数据导出excel

js方法:
function btn_import_excel(){
      var rtnObject_datagrid;
var sql_param = {};
if (jQuery('#swjg').val() != "" && jQuery('#swjg').val() != null) {
sql_param.jgdm = jQuery('#swjg').val();
}
sql_param.pageNumber = jQuery('#pageNumber').val();
sql_param.pageSize = jQuery('#pageSize').val();
alert("fxydtjService.querySwryRw");
var service_datagrid = new CommonService("fxydtjService.querySwryRw",sql_param,"json");
service_datagrid.doService();
if (service_datagrid.getCode() == "2000") {
rtnObject_datagrid = service_datagrid.getResponse();
}else {
rtnObject_datagrid = {total : 0,rows : []};
}
if (rtnObject_datagrid.rows.length == 0) {
alert("查询结果区域没有数据可导出!");
} else {
var data = rtnObject_datagrid;
var columns = $('#bfpryxxlb').datagrid("options").columns;
$('#tableColumnsId').val(JSON.stringify(columns));
$('#tableDataId').val(JSON.stringify(data));
$('#exportFormFf').submit();
}
}

jsp:
<!-- 要导出的数据-->
<form id="exportFormFf" action="./exporttaskhistory.jsp" method="post">
    <input type="hidden" name="tableData" id="tableDataId" value=""/>
    <input type="hidden" name="tableColumns" id="tableColumnsId" value=""/>
</form>

jsp中的java代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.List"%>
<%@ page import="java.util.Map" %>
<%@ page import="net.sf.json.JSONObject" %>
<%@ page import="net.sf.json.JSONSerializer" %>
<%
   response.reset();
   response.setContentType("application/vnd.ms-excel;charset=GBK");
   response.setHeader("Content-disposition","attachment; filename=taskhistory.xls" );
%>
<html>
    <head>
    <%
    String tableData =request.getParameter("tableData");
    String columns = request.getParameter("tableColumns");
   
    Object list1 = JSONSerializer.toJSON(tableData);
    List columns1 = (List)JSONSerializer.toJSON(columns);
   
    Map dataMap1 = (Map) list1;
    List data = (List)dataMap1.get("rows");
    List columnList = (List)columns1.get(0);
    String[] columnsArr = new String;
   
    for(int i = 0;i < columnList.size(); i++){
   Map map = (Map)columnList.get(i);
      columnsArr = String.valueOf(map.get("field"));
    }
   
    %>
      <title>EXCEL</title>
</head>
    <body>
   <form name="fm" method="post" >
       <table cellpadding="5" cellspacing="1"align="center"style="width: 100%;font-size: 9pt;style-align: center;background-color: #ffffff;border: 1px solid #cccccc;">
   <tr>
   <%for(int i = 0;i < columnList.size(); i++){
    Map map =(Map)columnList.get(i);
   %>
    <td class=formtitle align="center" nowrap style="width:13%;font-size: 9pt;background:#a480b2;color:#ffffff;height:30px;text-align: center;border: 1px solid #cccccc;"><%=map.get("title") %></td>
   <%} %>
   </tr>
   
   <%for(int j = 0;j < data.size(); j++){
    Map map =(Map)data.get(j);
   %>
   <tr>
   <%
    for(int k = 0;k < columnsArr.length; k++){
   String field = columnsArr;
   %>
    <td class=formtitle2 align="left" nowrap style="width:13%;font-size: 9pt;background:#ffffff;color:#000000;height:30px;text-align: left;border: 1px solid #cccccc;"><%=map.get(field)==null?"":""+map.get(field) %></td>
    <%}%>
   </tr>
   <%} %>
      </table>
      </form>
   </body>
</html>
页: [1]
查看完整版本: query easyui中datagrid数据导出excel