layui调用java接口,实现导出自定义格式Excel


项目环境是ssm框架,前端使用的是layUI

 

1、button按钮设置

<html>

<button type="button" onclick="excelExport()" class="layui-btn layui-btn-small">导出报告1</button>

 

</html>

 

<script type="text/javascript">

//导出
function excelExport() {
var table = layui.table;
var checkStatus = table.checkStatus("demo");
if(checkStatus.data.length==0){
Msg.msg('请选择您要导出的数据!', 7);
return;
}
var data= checkStatus.data;
if(data.length>1)
{
Msg.msg('每次只能导出一份报告!', 7);
return;
}
var businessIds = data[0].business_id;
window.location.href = WEB_CONTEXT + "qualityBusiness/exportExcel?bid="+businessIds;
}

</script>

使用button的onclick事件,不要使用ajax调用,无论是post还是get方式都不能在前端展示

2、后台java代码

import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;

使用GET方式调用,获取前端的参数使用HttpServletRequest

@RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
public ResponseFlagEntity exportExcel(HttpServletResponse response,HttpServletRequest request){

String businessid=request.getParameter("bid");
Map<String,Object> map=qualityBusinessService.getAllQuestionInfoByBusinessId(businessid);

String[] title={"id","姓名"};
//创建工作薄
HSSFWorkbook workbook=new HSSFWorkbook();
//创建工作表
HSSFSheet sheet=workbook.createSheet();

//创建第一行
HSSFRow row=null;
CellRangeAddress cra=null;

ResponseFlagEntity jr=new ResponseFlagEntity();
try{
response.setContentType("application ns.ms-excel");
response.setHeader("Content-disposition", "attachment;filename="
+ URLEncoder.encode("测试.xls", "UTF-8"));
response.setHeader("Pragma", "No-cache");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control",
"must-revalidate, post-check=0, pre-check=0");
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();
outputStream.close();

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM