easypoi list中的map导出_EasyPOI简单用例,简单有效

本文介绍了如何使用Easypoi库在SpringMVC中快速实现Excel和Word的导入导出。通过引入相关jar包,配置SpringMVC,配合注解和实体类,可以方便地处理文件的读写操作。示例代码展示了Excel和Word的导入导出方法,包括自定义字段和实体映射的方式。
摘要由CSDN通过智能技术生成

用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 excel模板指令是一种用于生成Excel文件的Java工具,它使得在Excel模板填充数据变得简单方便。 使用easypoi excel模板指令的第一步是定义Excel模板。我们可以在Excel设计好表格的样式,然后将模板保存为.xlsx或.xls格式。接下来,我们需要在模板标记出数据填充的位置,这可以通过在单元格插入特定的指令实现。 easypoi excel模板指令常用的指令有: 1. #foreach:通过此指令实现循环填充列表数据。我们可以在指令指定一个集合对象,easypoi会自动根据集合的大小将相应的模板区域复制并填充数据。 2. #if和#else:通过此指令可以实现条件判断。我们可以根据条件的满足与否,决定是否填充某个模板区域的数据。 3. #date:此指令用于格式化日期数据。我们可以在指令指定日期的格式,easypoi会根据指定的格式将日期数据格式化并填充到模板。 4. #image:通过此指令可以将图片插入到指定的位置。我们可以在指令指定图片的路径或者将图片加载到项目,然后将图片对象传入指令。 5. #formula:此指令用于计算Excel的公式。我们可以在指令写入公式的字符串,easypoi会自动计算出结果并将结果填充到指定的位置。 以上是easypoi excel模板指令的一些常用指令,通过这些指令,我们可以轻松实现Excel文件的数据填充和格式化操作。同时,easypoi还提供了其他丰富的功能,如单元格样式设置、合并单元格、导出多个sheet等,使得Excel文件的生成更加灵活和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值