springmvc excel导入导出

easypoi  导出Excel表格

传统的导出方式 poi方式配置特别多特别麻烦,在springmvc框架中使用  java easypoi 导出excel文件更加方便。

一 这里使用gradle版本管理工具,加入所需jar包

//excel导出
compile group: 'org.jeecg', name: 'easypoi-base', version: '2.3.1'
compile group: 'org.jeecg', name: 'easypoi-annotation', version: '2.3.1'
compile group: 'org.jeecg', name: 'easypoi-web', version: '2.3.1'

二 导出实体类

//序号
@org.jeecgframework.poi.excel.annotation.Excel(name = "编号", orderNum = "1", isImportField = "id")
private   String id;
//姓名
@org.jeecgframework.poi.excel.annotation.Excel(name = "姓名", orderNum = "2", isImportField = "name")
private  String  name;
//用户名
@org.jeecgframework.poi.excel.annotation.Excel(name = "用户名", orderNum = "3", isImportField = "userName")
private  String  userName;
//性别
@org.jeecgframework.poi.excel.annotation.Excel(name = "性别", orderNum = "4", isImportField = "sex")
private  String  sex;

三 controller

import org.apache.log4j.Logger;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;

@ApiOperation(value = "导出列表", notes = "导出\n" +
        "```\n" +
        "```")
@RequestMapping(value = "/download", method = RequestMethod.POST)

public void download(@RequestBody PageInfo pageInfo, HttpServletResponse response) throws Exception {
 
 
//文件下载名乱码问题处理
final String userAgent = request.getHeader("USER-AGENT");
String fileName = "人员-" + ".xls";
try {
    String finalFileName = null;
    if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
        finalFileName = URLEncoder.encode(fileName,"UTF8");
    }else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
        finalFileName = new String(fileName.getBytes(), "ISO8859-1");
    }else{
        finalFileName = URLEncoder.encode(fileName,"UTF8");//其他浏览器
    }
    response.setHeader("Content-Disposition", "attachment; filename=\"" + finalFileName + "\"");//
    } catch (UnsupportedEncodingException e) {
}

//查询要导出list
response.setHeader("content-Type", "application/vnd.ms-excel");
// response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
//获取要导出数据list集合
safetyEducationService.statisticByUser(pageInfo);
List<Person>   list= (List<Person>) pageInfo.getResultObject();
//导出数据封装
List<PersonExcel> list1=getPersonExcel(list);
Map whereMap=pageInfo.getWhereMap();
ExportParams exportParams;
if(whereMap.get("teachType")!=null  && whereMap.get("teachType")!=""){
    exportParams=new ExportParams(whereMap.get("teachType").toString()+"人员统计表", whereMap.get("content").toString());;
}else {
    exportParams=  new ExportParams("测试表头", "测试sheet名称");
}
Workbook workbook= ExcelExportUtil.exportExcel(exportParams, PersonExcel.class, list1);
workbook.write(response.getOutputStream());}



java分享交流群 110408216  java交流群

猜你喜欢

转载自blog.csdn.net/zxb730916/article/details/79814967