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();
可以取消表单默认

猜你喜欢

转载自blog.csdn.net/qq_38729043/article/details/78642776
今日推荐