用poi导出Excel表格,需要配置很多东西,也比较麻烦,这里使用poi的封装easypoi,可以快速配置,实现Excel或者word文件的导出。这里我们结合SpringMVC开发easypoi。

1,导入以下3个.jar包:这里是springMVC和easypoi所需的jar包,主要是easypoi-base和easypoi-web,其它都是关联所需的jar包,我们需要commons-lang3.jar包,开始使用commons-lang2.6版本会出现错误。

2,spring-mvc.xml配置如下:

class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="0">

1.ExcelExportUtil Excel导出(普通导出,模板导出)

2.ExcelImportUtil Excel导入

3.WordExportUtil Word导出(只支持docx ,doc版本poi

3 Controller

导入方式,可以根据映射关系,通过注解,字段名符合导入,如下例

public class RechannelreportEntity implements java.io.Serializable {

/**id*/

private java.lang.Integer id;

/**amount*/

@Excel(name="amount")

private java.lang.Integer amount;

/**amounts*/

@Excel(name="amounts")

private java.lang.Integer amounts;

/**counts*/

@Excel(name="counts")

private java.lang.Integer counts;

/**date*/

@Excel(name="date",format = "yyyy-MM-dd")

private java.util.Date date;

/**username*/

.......

@SuppressWarnings("unchecked")

@RequestMapping(params = "importExcel", method = RequestMethod.POST)

@ResponseBody

public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {

AjaxJson j = new AjaxJson();

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

Map fileMap = multipartRequest.getFileMap();

for (Map.Entry entity : fileMap.entrySet()) {

MultipartFile file = entity.getValue();// 获取上传文件对象

ImportParams params = new ImportParams();

params.setTitleRows(2);

params.setHeadRows(1);

params.setNeedSave(true);

try {

List listRechannelreportEntitys = ExcelImportUtil.importExcel(file.getInputStream(),RechannelreportEntity.class,params);

for (RechannelreportEntity rechannelreport : listRechannelreportEntitys) {

rechannelreportService.save(rechannelreport);

}

j.setMsg("文件导入成功!");

} catch (Exception e) {

j.setMsg("文件导入失败!");

logger.error(ExceptionUtil.getExceptionMessage(e));

}finally{

try {

file.getInputStream().close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return j;

导出方式一,可以自定义输出字段,并赋值

@RequestMapping(params = "exportXls2")

public String string2(RechannelreportEntity rechannelreport,HttpServletRequest request,HttpServletResponse response

, DataGrid dataGrid,ModelMap modelMap) {

//"&&searchColums=&undefined=&sqlbuilder=&username=CL007&date_begin=2017-01-17&date_end=2017-01-17"

List entityList = new ArrayList();

entityList.add(new ExcelExportEntity("日期", "cou1", 15));

entityList.add(new ExcelExportEntity("渠道号", "cou2", 15));

entityList.add(new ExcelExportEntity("原始金额", "cou3", 15));

entityList.add(new ExcelExportEntity("扣量金额", "cou4", 15));

entityList.add(new ExcelExportEntity("结算金额", "cou5", 15));

//这边的getData2 方法是对 MapExcelConstants.MAP_LIST进行赋值

List> dataResult = getData2(getDateGrid(rechannelreport, request));

modelMap.put(MapExcelConstants.ENTITY_LIST, entityList);

modelMap.put(MapExcelConstants.MAP_LIST, dataResult);

modelMap.put(MapExcelConstants.FILE_NAME, DateUtils.formatDate(new Date()) + "数据");

Date now = new Date();

modelMap.put(NormalExcelConstants.PARAMS, new ExportParams(rechannelreport.getUsername() + "对账单详情", "导出日期:" + DateUtils.formatDate(new Date()) + "     ", "导出信息"));

return MapExcelConstants.JEECG_MAP_EXCEL_VIEW;

}

导出方式二,根据实体映射现实字段@ExcelTarget("courseEntity")

public class CourseEntity implements java.io.Serializable {

/** 主键 */    private String id;

/** 课程名称 */    @Excel(name = "课程名称", orderNum = "1", needMerge = true)

private String name;

/** 老师主键 */    @ExcelEntity(id = "yuwen")

@ExcelVerify()

private TeacherEntity teacher;

/** 老师主键 */    @ExcelEntity(id = "shuxue")

private TeacherEntity shuxueteacher;

@ExcelCollection(name = "选课学生", orderNum = "4")

private List students;

@RequestMapping(params = "exportXls")

public String exportXls(CourseEntity course,HttpServletRequest request,HttpServletResponse response

, DataGrid dataGrid,ModelMap map) {

CriteriaQuery cq = new CriteriaQuery(CourseEntity.class, dataGrid);

org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, course, request.getParameterMap());

List courses = this.courseService.getListByCriteriaQuery(cq,false);

map.put(NormalExcelConstants.FILE_NAME,"用户信息");

map.put(NormalExcelConstants.CLASS,CourseEntity.class);

map.put(NormalExcelConstants.PARAMS,new ExportParams("课程列表", "导出人:Jeecg",

"导出信息"));

map.put(NormalExcelConstants.DATA_LIST,courses);

return NormalExcelConstants.JEECG_EXCEL_VIEW;

}

easypoi list中的map导出_EasyPOI简单用例,简单有效相关推荐

  1. easypoi list中的map导出_如何优雅的导出 Excel

    作者:你在我家门口来源:https://juejin.im/post/5c6b6b126fb9a04a0c2f024f 前言 公司项目最近有一个需要:报表导出.整个系统下来,起码超过一百张报表需要导出 ...

  2. easypoi list中的map导出_Java中的集合类(List,Set.Map)

    1.List 1.1 Arraylist 与 LinkedList 区别 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全: 底层数据结构: Arr ...

  3. matlab 简单算例,(简单算例)基于Matlab的电力系统潮流编程计算.pdf

    (简单算例)基于Matlab的电力系统潮流编程计算 基于Matlab的电力系统潮流编程计算 口黄扬威吴喜春郭志峰张斯翔 (三峡大学电气与新能源学院湖北·宜昌443002) 摘要:通过介绍电力系统的实际 ...

  4. 表中的数据导出为insert语句的简单方法

    因项目需要,有时要求将一个表中的记录导出来,结合网上搜索的一些代码,而成此文 .因时间过长已找不出原创作者,谨请原谅 Create procedure pGetInsertSQL (@tablenam ...

  5. 学习Docker之Docker初体验 简单用例---SpringBoot集成Docker的部署、发布与应用

    简单用例 简单的创建一个工程,实现一个接口即可,然后在pom中添加docker插件,相关代码如下 @SpringBootApplication @RestController public class ...

  6. java map set_java中Map、Set、List的简单使用教程(快速入门)

    Map.Set.List List的常用方法 1.创建 List list = new ArrayList<>(); List list = new LinkedList<>( ...

  7. 超详细:将iPhone中音乐导出到电脑里的简单方法(完美支持最新iOS15.2系统)

    将Mac或Windows里的音乐导入到iPhone中很容易,简直轻而易举.但是反过来:能不能把iPhone中的音乐导出到Mac或Windows里呢? 好像有点难度了!很多小伙伴搜索一番觉得不大可能,直 ...

  8. HZYWX-技术交流-开发中的导入导出

    1 背景 需求: 项目需求,导出excel或word: 批量数据导入: - 导入导出插件(API): 前端导出(jquery.wordexport.js.tableExport.js.Blob对象.x ...

  9. EasyPoi实现excel文件导入导出

    EasyPoi学习实践 1 简介 easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板 ...

最新文章

  1. web前端开发培训有哪些学习阶段
  2. [Android Pro] linux下查看一个文件的属性(ls,lsattr,file,stat)
  3. 模块开发卷宗(GB8567——88)
  4. java web核心知识_JAVA web 相关知识点
  5. 跳一跳python开挂_微信跳一跳物理外挂—教​你用 Python 来玩微信跳一跳
  6. 复习一下,免得下次面试又栽在沟里~
  7. hibernate将本地SQL查询结果封装成对象
  8. 查看sqlserver 2008中性能低下的语句
  9. VS关闭却不关闭IIS Express并利用其进行调试
  10. vs C4996的错误解决方法
  11. php pdo insertid,php-在PDO准备好的语句内使用LAST_INSERT_ID插入...
  12. 这个应该是目前最全的Tracking相关的文章了
  13. php zend guard php 7,zend guard php7最新版
  14. xiaok海洋测绘网全新改版(使用emlog)
  15. 港科夜闻|全国政协副主席梁振英一行到访香港科技大学(广州)
  16. 处理亚马逊差评的几个方法
  17. 美国光纤通信展归来:光时代的MPO应用无法抗拒
  18. slice,splice,split区别和作用
  19. 在python程序中数据的来源可以是-python起源,变量,用户交互,流程语句
  20. 我们知道很多道理,却依然过不好这一生?

热门文章

  1. 第一天docker入门
  2. thinkphp--多个id查询
  3. 实体框架 Code First 迁移命令
  4. [LeetCode-JAVA] Remove Duplicates from Sorted Array II
  5. Meego系统的终结 诺基亚QT部门解散
  6. 闭包 进阶 javascript
  7. DeleteDC、ReleaseDC、DeleteObject - [Daliy APIs]
  8. docker端口映射失效解决方法
  9. vs code 问题:preLaunchTask“build”已终止,退出代码为 1。解决办法
  10. DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法