EXCEL文件上传,内容格式验证(POI)

这篇博客介绍了如何在jsp页面中实现Excel文件的上传,使用了MultipartFile处理文件上传,并在Controller中通过POI库进行内容格式验证,包括文件名校验、日期校验以及文件是否存在校验。在验证通过后,将Excel文件保存到服务器并解析XML内容。
摘要由CSDN通过智能技术生成

jsp页面标签

<!-- 上传走行信息的Excel -->
            <form id="runInfoForm" class="collection_form" action="${basePath}/cs/uploadRunInfo" enctype="multipart/form-data" target="hiddenIFrame" method="post">
                <!--   选择按钮 -->
                <div class="file">
                    <input type="file" name="file" class="files" id="file"/>
                </div>
                <!-- 上传按钮 -->
                       <a href="javascript:void(0)" class="templateDownload" id="btn">上传</a>
                <!-- 模板下载 -->
                <a href="${basePath }/fileDisk/cs/服务器上文件名.xlsx" class="templateDownload">模板下载</a>
            </form>

        <iframe id='hiddenIFrame' name='hiddenIFrame' style="display:none;"></iframe>
     
 

/**
     * controller走行xml上传
     * @param file
     * @param request
     * @param model
     * @return
     * @throws Exception
     */
    @RequestMapping(value="/uploadRunInfo",produces="text/html;charset=UTF-8")
    @ResponseBody
    public String upload(MultipartFile file,HttpServletRequest request,Model model) throws Exception{
        if(null == file || (null != file && 0 == file.getSize())){
            return "请选择一个文件!";
        }
        
        String fileName = file.getOriginalFilename();
        //校验文件名
        boolean flag = csRunInfoService.validateName(fileName);
        if(false == flag){
            return "文件名错误,请核对文件名!";
        }
        
        boolean validateDate = csRunInfoService.validateDate(fileName);
        if(false == validateDate){
            return "上传失败,只能上传当月走行记录!";
        }
        
        //校验文件是否已经存在
        String path = request.getSession().getServletContext()
                .getRealPath("/fileDisk/cs");
        List<String> list = csRunInfoService.fileNameList(path);
        boolean hasFile = list.contains(fileName);
        logger.debug("@@@@@ 服务器中是否已经有文件:" + hasFile);
        
        
        
        File newFile = new File(path + "/" + fileName);
        FileUtils.copyInputStreamToFile(file.getInputStream(), newFile);
        if(!newFile.exists()){
            return "上传失败!";
        }else{
            //解析走行记录xml
            String newPath = path + "/" + fileName;
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值