java中Excel导入导出处理
导出采用EasyPoiAPI
http://doc.wupaas.com/docs/easypoi
加入maven依赖
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.1.0</version>
</dependency>
1.Exce数据导出
excel数据导出
创建模板,及配置模板渲染信息
渲染字段如果渲染集合必须集合前面 ” { {$fe: list ” 其中list 是再代码中put的key值。我目前的模板key值是inputSchoolDataPos, 然后就 t.对象 就能把相对应的对象给渲染出来。最后一个对象一定要写 " }} "
上代码
TemplateExportParams params = new TemplateExportParams("templates/标准模版5.xlsx", true);
params.setStyle(ExcelStyleType.BORDER.getClazz());
Map<String, Object> map = new HashMap<String, Object>();
List<InputSchoolDataPo> inputSchoolDataPos = new ArrayList<>();
//inputSchoolDataPos就是 {
{$fe: list中的list
map.put("inputSchoolDataPos", inputSchoolDataPos);
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
//1.直接文件输入到固定的文件地址下面
File savefile = new File("D:/test");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new FileOutputStream("D:/test/测试文件.xlsx");
workbook.write(fos);
fos.close();
//2.流输入直接下载需要 传入HttpServletResponse response
response.setHeader("content-Type", "application/vnd.ms-excel");
try {
response.setHeader("content-Disposition",
"attachment;filename=" + URLEncoder.encode("测试文件.xlsx", "utf-8"));
workbook.write(response.getOutputStream());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
2.Excel数据导入入库
导入模板为 代码
try {
ImportParams params = new ImportParams();
params.setHeadRows(1); //头行忽略的行数
//multipartFile是MultipartFile multipartFile
inputSchoolDataPos = ExcelImportUtil.importExcel(multipartFile.getInputStream(),
}catch(Exception e){
}
InputSchoolDataPo 实体
@Data
@ExcelTarget("inputSchoolDataPo")
public class InputSchoolDataPo {
@Excel(name = "专业大类(必选)")
private String specialityBigType;
@Excel(name = "专业名称(必填)")
private String specialityName;
@Excel(name = "专业代码(必填)")
private String specialityCode;
@Excel(name = "专业开始招生年份(必填)")
private String specialityStartYear;
@Excel(name = "专业名称校验")
private String specialityNameCheck;
@Excel(name = "代码校验")
private String codeCheck;
@Excel(name = "年份校验")
private String yearCheck;
}
