JavaWeb项目excel文件导入

本文介绍了在JavaWeb项目中如何实现Excel文件的导入。首先,通过在web页面添加一个'导入Excel'的button按钮,并设置input类型为file,确保与后台属性一致。接着,详细讲解了HTML页面的设置和实体类中的属性配置。最后,提供了一段SQL示例,完成Excel数据的导入。文章结尾邀请读者对不足之处提出建议。
摘要由CSDN通过智能技术生成

项目期间有Excel文件导入 今天来整理一下


1. 首先在web页面添加一个button按钮 “导入Excel”
注意: input 的类型必须是file才可以 name=“fileData”的名字要和后台的属性一致
这里写图片描述

2. html页面:

$(function() {
   
     $("#inputExcel").change(function(){
   
        initProvince();
        // 获得文件
        var file = $("#inputExcel").val();
        // 截取上传的文件后缀
        var extension = file.substring(file.lastIndexOf("."),file.length);
        // 验证上传文件后缀是否合法
        var strRegex = "(.xls|.xlsx)$";
        var re = new RegExp(strRegex);
        var flag;
        // 如果不合法,在页面上显示出相应的提示消息
        if (!re.test(extension.toLowerCase())) {
            layer.msg('文件名不合法,请上传Excel文件!', {
                icon : 2
            });
          return false;
        }
        if(extension == ".xls"){
            flag = 0;
        }
        if(extension == ".xlsx"){
            flag = 1;
        }
        var parms = new Object();
        // Excel版本flag
        parms["flag"] = flag;
        //如果你用不到以下参数的话就可以不用写
        parms["provinceNames"] = JSON.stringify(provinceNames);
        //parms["areaNames"] = JSON.stringify(areaNames);
        var options = {
        //这个url是后台的接口网址
                url: ctx+'/organ/inputExcel.do?t=' + getNowDate(), 
                type: "post",   
                data: parms,
                dataType: "json",  
                success: function (result) {
   
                    var json = eval(result);
                    if (json[Cons.RESULT] == Cons.SUCCESS) {
                        layer.msg('导入成功!', {
                            icon : 1
                        });
                    }else if(json[Cons.RESULT] == null){
                        layer.msg(json[Cons.RESULT_MSG], {
                            icon : 2
                        });
                    }else if(json[Cons.RESULT] == "codeDuplication"){
                        layer.msg(json[Cons.RESULT_MSG], {
                            icon : 2
                        });
                    }else if(json[Cons.RESULT] == "telError"){
                        layer.msg(json[Cons.RESULT_MSG], {
                            icon : 2
                        });
                    }else if(json[Cons.RESULT] == "provinceError"){
                        layer.msg(json[Cons.RESULT_MSG], {
                            icon : 2
                        });
                    }else {
                        layer.msg('导入失败!', {
                        icon : 2
                    });
                    }
                    setTimeout('window.location.reload()',2000);
                } 
         }; 
        $("#form1").ajaxSubmit(options);
     }); 
 });



3. controller: 用来读取excel文件将数据保存到数据中

@SuppressWarnings({ "deprecation", "unchecked" })
    @RequestMapping(value = "/inputExcel", method=RequestMethod.POST)
    public void upload(@RequestParam(value="fileData", required=false) MultipartFile file ,
            @RequestParam("flag")String flag,
            HttpServletRequest request, HttpServletResponse response)throws Exception {
        Map<String, Object> resMap = new HashMap<String, Object>();
        // 文件转换成输入流
        FileInputStream fis=(FileInputStream) file.getInputStream();
        String provinceNames = request.getParameter("provinceNames");  
        JSONArray provinceNamesJson=JSONArray.fromObject(provinceNames);
         // 获取系统当前服务id
        ServiceAdapter adapter = ServiceAdapter.getInstance();
        String serviceID = adapter.getServiceId();
        DecimalFormat df = new DecimalFormat("#");
        if("0".equals(flag)){
            // 创建xls工作薄
            HSSFWorkbook workbook = null;
            try {
                workbook = new HSSFWorkbook(fis);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            // 得到工作表
            HSSFSheet sheet = workbook.getSheetAt(0); 
            // 对应Excel的行
            HSSFRow row = null;
            // 得到Excel的总行数
            int totalRows = sheet.getLastRowNum();
            for (int i = 1; i <= totalRows; i++) {
   
                row = sheet.getRow(i);
               //这个实体是你需要导入的文件的实体
                SysOrgan organ =new SysOrgan();
       
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值