项目环境是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();
}