jquery:通过jquery导出json数据到excel
前台页面:
<meta charset="gbk"> <link rel="stylesheet" href="css/bootstrap.min.css"> <script src="https://code.jquery.com/jquery-3.2.0.min.js"></script> <script src='excelexportjs.js'></script> <h2>Kewords报表</h2> <div id="report1"></div> <button id='DLtoExcel1' class="btn btn-danger">导出keywords报表</button> </br> </br> <h2>Landingpage报表</h2> <div id="report2"></div> <button id='DLtoExcel2' class="btn btn-danger">导出Landingpage报表</button> <script> var url='data.ajax.php?action=getvisitreport'; var $btnDLtoExcel1 = $('#DLtoExcel1'); $btnDLtoExcel1.on('click', function () { $.get(url, function(data) { data=eval("("+data+")"); // console.log(data.list); $("#report1").excelexportjs({ containerid: "report1" , datatype: 'json' , dataset: data.list , encoding: "gbk" // , columns: getColumns(data.list) //getColumns函数里可以定义表头 , columns: data.listcolumns //直接从后台返回 }); }); }); var $btnDLtoExcel2 = $('#DLtoExcel2'); $btnDLtoExcel2.on('click', function () { $.get(url, function(data) { data=eval("("+data+")"); // console.log(data.listzt);return false; $("#report2").excelexportjs({ containerid: "report2" , datatype: 'json' , dataset: data.listzt , encoding: "gbk" // , columns: getColumns(data.listzt) //getColumns函数里可以定义表头 , columns: data.listztcolumns //直接从后台返回 }); }); }); </script>
后台页面代码:
数据列表是list和listzt;listcolumns和listztcolumns返回前端用于设置表头;当然也可以选择在前端页面组装json字符串;
$data['list']=$list; $data['listcolumns']=array( 0=>array('headertext'=>'账号','datatype'=>'string','datafield'=>'account'), 1=>array('headertext'=>'渠道','datatype'=>'string','datafield'=>'channel'), 2=>array('headertext'=>'计划','datatype'=>'string','datafield'=>'plan'), 3=>array('headertext'=>'单元','datatype'=>'string','datafield'=>'unit'), 4=>array('headertext'=>'关键字','datatype'=>'string','datafield'=>'keywords'), 5=>array('headertext'=>'页面','datatype'=>'string','datafield'=>'pageurl'), 6=>array('headertext'=>'pv','datatype'=>'string','datafield'=>'pv'), 7=>array('headertext'=>'uv','datatype'=>'string','datafield'=>'uv'), 8=>array('headertext'=>'注册数','datatype'=>'string','datafield'=>'signups'), 9=>array('headertext'=>'电话数','datatype'=>'string','datafield'=>'400tels'), );//表头字段 用于jquery导出时的表头设置 $data['listzt']=$listzt; $data['listztcolumns']=array( 0=>array('headertext'=>'标题','datatype'=>'string','datafield'=>'pagetitle'), 1=>array('headertext'=>'链接','datatype'=>'string','datafield'=>'pageurl'), 2=>array('headertext'=>'pv','datatype'=>'string','datafield'=>'pv'), 3=>array('headertext'=>'uv','datatype'=>'string','datafield'=>'uv'), 4=>array('headertext'=>'停留时间','datatype'=>'string','datafield'=>'avgstay'), 5=>array('headertext'=>'跳出率','datatype'=>'string','datafield'=>'breakrate'), );//表头字段 用于jquery导出时的表头设置 echo urldecode(json_encode($m->g2j($data),JSON_UNESCAPED_UNICODE));