java導入excel表

導入功能


html代碼

<div>
   <form enctype="multipart/form-data" id="ssss">
       <input type="file" name="files" id="dr" accept=".xls" style="margin-left: 30px"/>
   <button class="btn" id="entranceInfo">導入</button>
   </form>
   <span id="prompt"></span>
 </div>

js代碼

$("#entranceInfo").click(function(){
    event.preventDefault();//可以取消默認的from表單提交
    var formData = new FormData($("#ssss")[0]);
    console.log(formData);
    if($("#dr").val()==null || $("#dr").val()==""){
        createPnotify('error',"請選擇Excel文件");
        return;
    }
    $.ajax({
        type: "post",
        url: url,
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        beforeSend: function (request) {
            request.setRequestHeader("SESSIONID", localStorage.getItem('sessionId'));
        },
        success: function(result){
            var datas = JSON.parse(result);
            if(datas.code==200){
                $("#prompt").html("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;成功:"+datas.data.success+",失敗:"+datas.data.fail+"錯誤信息:"+(datas.data.prompt).replace(/H/g,"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"));
                infoTable.ajax.reload();
            }else {
                createPnotify('error',datas.msg);
            }
        }
    })
});

後端接口

    @RequestMapping(value = "/suifang/excelImport", method = RequestMethod.POST)
    public void excelImport(@RequestParam("files") MultipartFile files ,HttpServletRequest request,HttpServletResponse response) {
        System.out.println("8888888888888888888888"+files);
        AjaxResponseMessage ajaxResponseMessage = new AjaxResponseMessage(ErrorCode.SYS_SUCCESS, messageUtil.getMessage("process.ok"));
        int success=0;//成功
        int fail=0;//失敗
        String prompt="";//錯誤信息
        String path=" ";//表路徑
        try {
            String filename = files.getOriginalFilename();
            String _ext = filename.substring(filename.lastIndexOf("."));
            path= PropertiesUtil.getString("temp.fileExcel.path")+File.separator+ DateUtil.getDays()+File.separator+System.currentTimeMillis()+_ext;
            System.out.println(path);
            FileUtils.writeByteArrayToFile(new File(path), files.getBytes());
            Workbook workbook = Workbook.getWorkbook(new File(path));
            Sheet sheet = workbook.getSheet(0);
            for(int i=1;i<sheet.getRows();i++){
                Cell[] cells = sheet.getRow(i);
                FamliyAccessReq f = new FamliyAccessReq();
                if(cells[0].getContents()!=null){
                    f.setUserName(cells[0].getContents());
                }
                if(cells[1].getContents()!=null){
                    f.setUserMobile(cells[1].getContents());
                }
                if(cells[2].getContents()!=null){
                    f.setSn(cells[2].getContents());
                }
                if("女".equals(cells[3].getContents()) ){
                    f.setGender((byte)1);
                }else {
                    f.setGender((byte)0);
                }
                if(cells[4].getContents()!=null){
                    f.setAddress(cells[4].getContents());
                }
                if("OSA".equals(cells[3].getContents()) ){
                    f.setSnDevice((byte)1);
                }else {
                    f.setSnDevice((byte)2);
                }
                if(cells[6].getContents()!=null){
                    f.setProvince(cells[6].getContents());
                }
                if(cells[7].getContents()!=null){
                    f.setCity(cells[7].getContents());
                }
                f.setKefu_id(1000077l);
                System.out.println(f);
                try {
                    familyAccessService.save(PlatomUtils.getSessionId(request), f);
                    success++;
                }catch (BusinessException businessException) {
                    fail++;
                    prompt+="H第"+i+"行"+f.getUserName()+","+f.getSn()+messageUtil.getMessage("exception.code." + businessException.getCode());
                }catch (Exception e){
                    fail++;
                    prompt+="H第"+i+"行"+f.getUserName()+","+f.getSn()+messageUtil.getMessage("process.error");
                }
            }
            Map<String, String> map = new HashMap<String, String>();
            map.put("success", success+"");
            map.put("fail", fail+"");
            map.put("prompt", prompt);
            ajaxResponseMessage.setData(map);
            workbook.close();
        }catch (Exception e) {
            ajaxResponseMessage.setCode(ErrorCode.SYS_ERROR);
            ajaxResponseMessage.setMsg(messageUtil.getMessage("process.error"));
            printLogger(e);
        } finally {
            new File(path).delete();
        }
        ServletResponseHelper.outUTF8(response, JSON.toJSONString(ajaxResponseMessage));
    }

遇到的問題:
在from表單只設置一個button標籤的話,會把button默認設置爲提交按鈕,並且from表單沒有指定路徑的話,會自動刷新本網頁
解決方法
event.preventDefault();
可以取消表單默認

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