pom.xml
<!--私服-->
<distributionManagement>
<repository>
<id>jeecg</id>
<name>jeecg Repository</name>
<url>http://maven.jeecg.com:8090/nexus/content/repositories/jeecg</url>
</repository>
<snapshotRepository>
<id>jeecg-snapshots</id>
<name>jeecg Snapshot Repository</name>
<url>http://maven.jeecg.com:8090/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.jeecgframework</groupId>
<artifactId>autopoi-web</artifactId>
<version>1.0.3</version>
<exclusions>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
实体类
- 加上@ExcelTarget、 @Excel这两个注解就行了
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("T_TZSB_FACTORY_OUT_PERSON")
@ExcelTarget(value = "FactoryOutPersonEntity")
public class FactoryOutPersonEntity {
//id
@TableId(type = IdType.AUTO)
private Integer id;
// 证件编号
@Excel(name = "证件编号",width = 15)
private String certificateNum;
//姓名
@Excel(name = "姓名",width = 15)
private String personName;
//性别
@Excel(name = "性别",width = 15)
private String sex;
}
导入功能
- 前端只需传一个MultipartFile对象过来就行,跟平常文件上传一样
@RequestMapping(value = "/importExcel")
@ResponseBody
public ResultEntity<FactoryOutPersonEntity> importExcel(@RequestParam("file") MultipartFile file) {
log.info("导入厂外人员信息");
List<FactoryOutPersonEntity> list = null;
try {
ImportParams params = new ImportParams();
//表格标题所在行,计数从0开始
params.setTitleRows(0);
//head头部所在行,计数从0开始
params.setHeadRows(0);
//表格sheet数量
//params.setSheetNum(9);
//最好不要设置为true,否则导入一次excel服务器会重启一次,原因不明
// params.setNeedSave(false);
InputStream inputStream = file.getInputStream();
list = ExcelImportUtil.importExcel(inputStream, FactoryOutPersonEntity.class, params);
//批量插入,出错回滚
int insert = factoryOutPersonService.addBatch(list);
} catch (Exception e) {
e.printStackTrace();
return ResultEntity.FAILMsg("失败");
}
return ResultEntity.SUCCESSMsg("成功", list);
}
导出功能
- 导出功能也简单,只需要你查一下数据库获得你要导出的数据集合,再把传个集合对应的对象类型就ok,前端只需访问/exportXls,即可得到一个excel文件
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(FactoryOutPersonEntity fope) {
log.info("导出厂外人员信息");
//组建查询条件
QueryWrapper<FactoryOutPersonEntity> wrapper = new QueryWrapper<>();
if (!StringUtil.isEmpty(fope.getCertificateNum())) {
wrapper.eq("CERTIFICATE_NUM", fope.getCertificateNum());
}
if (!StringUtil.isEmpty(fope.getPersonName())) {
wrapper.eq("PERSON_NAME", fope.getPersonName());
}
if (!StringUtil.isEmpty(fope.getWorkProject())) {
wrapper.eq("WORK_PROJECT", fope.getWorkProject());
}
List<FactoryOutPersonEntity> factoryOutPersonEntities = factoryOutPersonService.getFactoryOutPersonEntities(wrapper);
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "厂外人员信息表");
//注解对象Class
mv.addObject(NormalExcelConstants.CLASS, FactoryOutPersonEntity.class);
//自定义导出字段
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams());
//导出数据列表
mv.addObject(NormalExcelConstants.DATA_LIST, factoryOutPersonEntities);
return mv;
}