前言:本文使用后台处理的办法导出前端表格中显示的数据。
引入依赖
org.apache.poi
poi
3.17
书写PoiUtils
public classPoiUtils {public static ResponseEntity exportExcel(List marketList) throwsIOException {
HttpHeaders headers=null;//创建文档
HSSFWorkbook workbook = newHSSFWorkbook();//创建excel文档
HSSFSheet sheet = workbook.createSheet("市场表");//定义列的宽度
sheet.setColumnWidth(0, 5 * 256);
sheet.setColumnWidth(1, 10 * 256);
sheet.setColumnWidth(2, 10 * 256);
sheet.setColumnWidth(3, 10 * 256);
sheet.setColumnWidth(4, 10 * 256);//设置表头
HSSFRow headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("编号");
headerRow.createCell(1).setCellValue("主题");
headerRow.createCell(2).setCellValue("预算");
headerRow.createCell(3).setCellValue("线索");for (int i=0;i
HSSFRow row= sheet.createRow(i+1);
Market market=marketList.get(i);
row.createCell(0).setCellValue(market.getId());
row.createCell(1).setCellValue(market.getTheme());
row.createCell(2).setCellValue(market.getbudget());
row.createCell(3).setCellValue(market.getClue());
}//将excel写入到ByteArrayOutStream中
ByteArrayOutputStream bos = newByteArrayOutputStream();
workbook.write(bos);
headers=newHttpHeaders();
headers.setContentDispositionFormData("attachment",new String("员工表.xls".getBytes("utf-8"),"iso-8859-1"));//创建ResponseEntity实体并返回
return new ResponseEntity(bos.toByteArray(), headers, HttpStatus.CREATED);
}
}
显示效果
到浏览器中测试:localhost:80/exportExcel(这是我测试的url,你们的自己根据实际情况来使用)
问题:这个请求只能在浏览器中使用,但在实际的项目中使用是时候该如何使用呢?
有朋友就会说这个很简单呀,直接使用ajax请求该路径不久完事了吗?哈哈哈,此时高手就会想到,ajax请求返回的是json,不是文件流,所以不能使用ajax来进行请求。
这个时候我们可以使用原始表单来解决,具体实现方法如下:
导出1
//导出,使用这种方式 可以,使用 ajax请求不可以 导出excel
function exportExcel(){
var form= $("
");form.attr(‘style‘, ‘display:none‘);
form.attr(‘target‘, ‘‘);
form.attr(‘method‘, ‘post‘);
form.attr(‘action‘, ‘${pageContext.request.contextPath}/user/export‘);
var input1= $(‘‘);
input1.attr(‘type‘, ‘hidden‘);
input1.attr(‘name‘, ‘item‘);
input1.attr(‘value‘, ‘test‘); /*JSON.stringify($.serializeObject($(‘#searchForm‘)))*/$(‘body‘).append(form);
form.append(input1);
form.submit();
form.remove();
}
原文:https://www.cnblogs.com/gfbzs/p/12272988.html