思路:
(1)通过ajax提交表单数据至一个Controller,由参数查询出数据集合,存入excel文件,返回excel文件名
(2)使用js window.open()方法访问文件下载的Controller,下载之前生成的文件
(3)下载完成之后删除文件,因为文件保存在项目路径下,觉得还是删掉比较好,日后优化可以设置一个定时任务,定期删掉也行。
<form role="form" method="post" id="speedFrom">
.......表单内容
<div class="form-group">
<button type="button" class="btn btn-info" id="dlspeed" >下载数据文件</button>
</div>
</form>
button 绑定事件
$(document).ready(function() {
//按钮下載数据文件
$("#dlspeed").click(function(){
var url="[[@{/dl}]]";
var road=$("#roads").val();
console.log(road);
if(road!=null && "请选择"!=road && typeof(road)!="undefined"){
$.post(url,$("#speedFrom").serialize(),
function(data, status){
console.log(data);
if("NoData"==data.info){
layer.msg('你选择的路在此时间段内没有数据, 请重新选择!');
}else{
layer.msg('已经生成数据文件正在为您下载 !');