Excel导入导出
来源:互联网 发布:没钱出国知乎 编辑:程序博客网 时间:2024/06/06 20:27
前言:
项目紧急,需求不明,开发苦不堪言。客户要求所有数据均可导入导出,开发觉不合理又无力驳回遂吐血而卒。
内容:
花了半天的时间,查了点数据,终于搞到了一套Excel导入导出的宝典。下面分享给大家。
首先: 在POM中加入依赖,加入上传文件的依赖
<dependency><groupId>org.jplus</groupId> <artifactId>J-Excel</artifactId> <scope>provided</scope></dependency>
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> </dependency>在spring-mvc中加入配置文件
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="UTF-8" /><!-- 指定所上传文件的总大小不能超过10485760000B。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 --><property name="maxUploadSize" value="10485760000"></property><property name="maxInMemorySize" value="40960"></property></bean>
其次:实体类的修改
1、 加入类注解 @ExcelModelConfig
2、 每个属性加入注解@Lang(value=”属性对应要导出的名字”)
3、 默认情况下属性值是可以为空的,如果不允许为空,则加入不为空注解。根据不同的数据类型使用不同的注解:
日期型:@InputDateConfig(nullable=false)
字符型:@InputTextConfig(nullable=false)
数字型:@InputIntConfig(nullable=false)
4、 如果有外键关联的话,加入字典配置。
在属性上方加入注解@InputDicConfig(dicCode=”dicCode”)用于导入,@OutputDicConfig(dicCode=”dicCode”)用于导出。dicCode是自定义的,要和后面添加字典数据时的Code相一致。
2、 每个属性加入注解@Lang(value=”属性对应要导出的名字”)
3、 默认情况下属性值是可以为空的,如果不允许为空,则加入不为空注解。根据不同的数据类型使用不同的注解:
日期型:@InputDateConfig(nullable=false)
字符型:@InputTextConfig(nullable=false)
数字型:@InputIntConfig(nullable=false)
4、 如果有外键关联的话,加入字典配置。
在属性上方加入注解@InputDicConfig(dicCode=”dicCode”)用于导入,@OutputDicConfig(dicCode=”dicCode”)用于导出。dicCode是自定义的,要和后面添加字典数据时的Code相一致。
三、在web中调用Excel导入导出的方法
1、Excel导出
Map<Serializable,Serializable> map=new HashMap<>(); map.put("sheetName", "testSimpleVoExport"); // sheet的名字 map.put("columns", new String[]{"id","name","class"}); //需要导出的字段 map.put("title", "学校课程"); //导出的表格标题 map.put("dataList", (Serializable) getList()); //getlist()为你要导出的数据,可替换为自己的list
dictDataMap.put("KCLX", (Serializable) ClassData); dictDataMap.put("GSLX", (Serializable) CountryData); ExcelUtil.exportExcel(map, dictDataMap, response); //如果有dictData则调用此方法ExcelUtil.exportExcel(map,response); //没有dictDataMap,调用此方法。2、Excel导入
Map<Serializable,Serializable> map=new HashMap<>(); map.put("sheetName", "sheet1"); //sheet的名称 map.put("Class", StudentModel.class); //所操作的实体类//将查询出来的外键关联值循环放入map中,如果没有则略过红色部分。
dictDataMap.put("KCLX", (Serializable) ClassData); dictDataMap.put("GSLX", (Serializable) CountryData); List<StudentModel> importList=ExcelUtil.importExcel(map, dictDataMap, request,response); //如果有dictDataMap则调用此方法List<StudentModel> importList=ExcelUtil.importExcel(map,request,response); //如果没有dictDataMap则调用此方法if(importList!=null){ System.out.println(importList.size());//调用模块相应的处理方法。(此内容可修改) }else{ System.out.println("Excel导入失败,请检查数据后,再次进行导入");//提示导入失败(此内容可修改) }
其中如果importList返回的值为null,说明Excel中的数据有错误,错误数据会在原来的Excel数据基础上标红,并导出。请修改数据后再次进行导入操作。如果importList的返回值不为null,则表示Excel中的数据没有问题。
阅读全文
0 0
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- EXCEL导入导出
- Excel导入&导出
- 数据库导入导出Excel
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- excel导入、导出数据
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- 阿里云:贱卖了啊,5折大促 | 蚂蚁金服脸一黑:我咋这有钱?【软件网每日新闻播报│第10-13期】
- #RxJava2源码解析(2)
- java.lang.NoClassDefFoundError错误分析
- C++学习【原创】copy和copy_backward函数的应用
- python字符串查找的四种方法
- Excel导入导出
- 软考视频总结
- 关于Keil Uv4工具绿化版拷贝到另一台电脑时编译失败显示版本过期问题的解决
- String.substr()和String.substring()
- 写给人类的机器学习 2.2 监督学习 II
- 通过一段代码发现 emu8086 和 DOSBox 的一点区别
- 字母排序(最长递增子串)
- hdu-154-Tunnel Warfare(线段树,区间)
- BZOJ 4236 JOIOJI