1、引入jar包
compile ‘io.github.mrdear:excel:0.0.7’
2、配置excel.html页面如下
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
$(function () {
$("#upload").click(function () {
var formData = new FormData();
formData.append("myfile", document.getElementById("file1").files[0]);
$.ajax({
url: window.location.origin+"/api/csvUpload",
type: "POST",
data: formData,
/**
*必须false才会自动加上正确的Content-Type
*/
contentType: false,
/**
* 必须false才会避开jQuery对 formdata 的默认处理
* XMLHttpRequest会对 formdata 进行正确的处理
*/
processData: false,
success: function (data) {
if (data.status == "true") {
alert("上传成功!");
}
if (data.status == "error") {
alert(data.msg);
}
},
error: function () {
alert("上传失败!");
}
});
});
});
</script>
</head>
<body>
选择文件:<input type="file" id="file1" /><br />
<input type="button" id="upload" value="上传" />
</body>
</html>
3、访问页面逻辑
@RequestMapping("/excel")
public String excel(){
return "excel";
}
4、上传处理逻辑:
@ResponseBody
@RequestMapping("/excelUpload")
public BaseResultModel excelUpload(MultipartHttpServletRequest multipartHttpServletRequest) {
BaseResultModel baseResultModel = new BaseResultModel();
Iterator<String> fileNames = multipartHttpServletRequest.getFileNames();
while (fileNames.hasNext()) {
MultipartFile file = multipartHttpServletRequest.getFile(fileNames.next());
try(InputStream inputStream = file.getInputStream()) {
ExcelReader reader = EasyExcel.read(inputStream);
List<XlsInfoClumn> result = reader.resolve(ExcelReadContext.<XlsInfoClumn>builder()
.clazz(XlsInfoClumn.class)
.build());
reader.close();
baseResultModel.setMessage("上传成功");
} catch (IOException e) {
logger.info(e.getMessage());
baseResultModel.setMessage("上传失败");
}
}
return baseResultModel;
}
/**
*
* excel表格与实体映射关系
*/
public class XlsInfoClumn {
@ExcelField(columnName = "json")
private String json;
public String getJson() {
return json;
}
public void setJson(String json) {
this.json = json;
}
}