layui實現上傳Excel文件,java後臺接收併入庫

前臺代碼:

<div class="layui-row bd-border ">
    <div class="layui-input-inline">
        <label class="layui-form-label">選擇文件:&nbsp;</label>
        <div class="layui-input-inline" style="width: 150px;">
            <button type="button" class="layui-btn" id="test1">
                <i class="layui-icon">&#xe67c;</i>選擇
            </button>
        </div>
        <div class="layui-input-inline">
            &nbsp;&nbsp;
            <button class="layui-btn bd-btn-radius layui-btn-normal" id="submit">確&nbsp;&nbsp;&nbsp;&nbsp;定</button>
        </div>
    </div>
</div>
$(function(){
    var uploadFileUrl = '../map/upload';
    layui.use('upload', function(){
        var upload = layui.upload;

        //執行實例
        var uploadInst = upload.render({
            elem: '#test1' //綁定元素
            ,url: '../map/upload' //上傳接口
            ,done: function(res){
                //上傳完畢回調
                alert(res);
            }
            ,error: function(){
                //請求異常回調
                alert(111);
            }
            ,accept:'file'//允許的文件類型
            ,auto: false//選擇文件後是否自動上傳
            ,bindAction:'#submit'

        });
    });
});

後臺接收代碼:

@RequestMapping(value = "/upload")
@ResponseBody
public Map<String,Object> upload( MultipartFile file, HttpServletRequest request){
    Map<String,Object> modelMap = new HashMap<>();
    List<MapPoint> mapPointList = new ArrayList<>();
    //讀取IO流文件
    InputStream input = null;
    XSSFWorkbook wb = null;
    try {
        input=file.getInputStream();
        wb=new XSSFWorkbook(input);
        //讀取頁
        for(int sheetNum=0;sheetNum<wb.getNumberOfSheets();sheetNum++){
            XSSFSheet xssfSheet = wb.getSheetAt(sheetNum);
            if(xssfSheet==null){
                continue;
            }
            //讀取行
            for(int rowNum=1;rowNum<xssfSheet.getLastRowNum()+1;rowNum++){
                MapPoint mapPoint = new MapPoint();
                XSSFRow row= xssfSheet.getRow(rowNum);
                if(row!=null){
                    for(int cellNum=0;cellNum<row.getLastCellNum();cellNum++){
                        row.getCell(cellNum);//獲取每一個單元格具體值,可根據需求轉成任意數據類型
                    }
                }
                mapPointList.add(mapPoint);
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    mapService.insertMapPoint(mapPointList);

    modelMap.put("success",true);
    return modelMap;
}

需要注意的是,需要在spring-mvc.xml中加如下配置,後臺才能正常接收到文件

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章