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