首先是前端页面
<div class="layui-upload">
<button type="button" class="layui-btn layui-btn-sm layui-btn-normal" id="test8">选择发货单文件</button>
<input class="layui-upload-file" type="file" accept="" name="file">
<button type="button" class="layui-btn layui-btn-sm" id="test9">开始上传</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-info" onclick="window.location.href='/statics/file/发货单.xls'">发货单模板</button>
</div>
然后是.js文件
//上传发货单文件
upload.render({
elem: '#test8'
,url: '/uploadData'
,accept: 'file'
,exts: 'xls' //只允许上传xlsx文件
,auto: false //不允许自动上传
,bindAction:'#test9' //指向开始上传按钮,与上面的auto配合着使用。。
,done: function(data){
console.log(data);
if(data != null && data.status == 0){
layer.msg(data.mesg, {icon: 1});
} else {
layer.msg(data.mesg, {icon: 2});
}
}
});
最后是controller
InputStream inputStream=file.getInputStream();
//通过输入流获取workbook
Workbook wb=Workbook.getWorkbook(inputStream);
//查看有几张sheet表
int numberOfSheets = wb.getNumberOfSheets();
System.out.println(numberOfSheets);
//通过wb获得第一张sheet表
Sheet sheet=wb.getSheet(0);
Cell cell = sheet.getCell(0, 0);
String contents = cell.getContents();
System.out.println("第一行第一列的值是:jjjjjjjjj"+contents);
这里通过输入流来获得Workbook对象,然后通过Workbook对象获得sheet表,sheet表通过getCell方法获得行列的值,然后将行列的值转换为字符串类型,这样就成功的解析出了表格文件里面的数据。