前端使用Bootstrap fileinput 来上传文件
后端使用
controller层
//获取文件的名称
String fileName = multipartFile.getOriginalFilename();
获取xls或xlsx的模版
Workbook book = WorkbookFactory.create(multipartFile.getInputStream());
Service层
//得到第一页
Sheet Sheet sheetAt = book.getSheetAt(0);
//定义行数
int rowIndex = 0;
//得到这一行
Row row = sheetAt.getRow(rowIndex);
//得到这一行第一个表格的数据;
row.getCell(0).toString().trim();
//如果sheet中一行数据都没有则返回-1,只有第一行有数据则返回0,最后有数据的行 是第n行则返回 n-1;
row.getLastRowNum ;
如果 row中一列数据都没有则返回-1,只有第一列有数据则返回1,最后有数据的列是第n列则返回 n;
row.getLastCellNum;
让后根据自己的逻辑得到自己想要的数据
js
$("#filebox").fileinput({
language : 'zh', // 设置语言
uploadUrl : urlHead+'/energydev/importData', // 上传的地址
allowedFileExtensions : [ 'xlsx','xls' ],// 接收的文件后缀
// uploadExtraData:{"id": 1, "fileName":'123.mp3'},//参数设置
uploadAsync : true, // 默认异步上传
showPreview : false, // 是否显示预览
showUpload: false, //是否显示上传按钮
showRemove: false, //显示移除按钮
showCancel: false,//显示取消按钮
dropZoneEnabled : false,// 是否显示拖拽区域
browseLabel: '数据导入',
maxFileCount : 2, // 表示允许同时上传的最大文件个数
enctype : 'multipart/form-data',
msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
validateInitialCount : true,
}).on('filebatchselected', function (event, files) {//选中文件事件
$(this).fileinput("upload");
$(".kv-upload-progress").hide();
$('#loadingModal').modal({backdrop: 'static', keyboard: false});
}).on("fileuploaded", function(event, data, previewId, index) {// 上传成功触发
}).on('fileerror', function(event, data, msg) {// 上传失败触发
toastr.error(msg, "错误");
}).on("filebatchselected", function(event, files) {// 选择文件时触发
}).on('fileerror', function(event, data, msg) {// 上传失败触发
toastr.error(msg, "错误");
closeModal();
});
html页面
- List item