欢迎使用CSDN-markdown编辑器

Excel表格导入数据库数据(用upload实现)

前端页面

1:导包

    src="${pageContext.request.contextPath }/js/jquery.ocupload-1.1.2.js"></script>

2:一件上传Excel表格代码

             name: 'uploadFile',  // <input name="file" />
             action: '${pageContext.request.contextPath }/workordermanageAction_batchImport.action',  // 提交请求action路径
             //enctype: 'multipart/form-data', // 编码格式
             autoSubmit: true, // 选中文件提交表单
             onComplete: function(response) {
                    if(response=="success"){
                        $.messager.alert("提示信息","数据导入成功!","info");
                        //$("#grid").datagrid("reload");
                    }else{
                        $.messager.alert("错误提示","数据导入失败","error");
                    }
             }// 请求完成时 调用函数
        });

后台Action代码

1:配置struts

<action name="workordermanageAction_*" class="workordermanageAction" method="{1}">
            <result name="list">/WEB-INF/pages/qupai/quickworkorder.jsp</result>
        </action>

2:action代码

    private File uploadFile;
    public void setUploadFile(File uploadFile) {
        this.uploadFile = uploadFile;
    }

    //工作单批量导入
    @SuppressWarnings("deprecation")
    public String batchImport() throws IOException{
        String response = "success";//定一个返回结果

        //解析excel  目的:将获取的数据存入数据库
        System.out.println(uploadFile);
        try {
            //将upload加载到Workbook对象 相当于一个Excel
            Workbook hb = new XSSFWorkbook(new FileInputStream(uploadFile));
            //获取sheet 根据名称获取sheet
            //Sheet sheet = hb.getSheet("Sheet1");
            Sheet sheetAt = hb.getSheetAt(0);
            //定一个list存放Work对象
            List<Workordermanage> list = new ArrayList<>();
            //获取行
            for (Row row : sheetAt) {
                int rownum = row.getRowNum();
                if(rownum == 0){
                    continue;
                }
                //获取每一列数据
                String id  = row.getCell(0).getStringCellValue();//id
                String product =row.getCell(1).getStringCellValue();//产品
                row.getCell(2).setCellType(HSSFCell.CELL_TYPE_STRING);
                String prodtimelimit = row.getCell(2).getStringCellValue();//时限
                String prodtype =row.getCell(3).getStringCellValue();//产品类型
                String sendername =row.getCell(4).getStringCellValue();//发件人姓名
                row.getCell(5).setCellType(HSSFCell.CELL_TYPE_STRING);
                String senderphone = row.getCell(5).getStringCellValue();//发件人手机号码
                String senderaddr =row.getCell(6).getStringCellValue();//发件人地址
                String receivername =row.getCell(7).getStringCellValue();//收件人姓名
                row.getCell(8).setCellType(HSSFCell.CELL_TYPE_STRING);
                String receiverphone = row.getCell(8).getStringCellValue();
                String receiveraddr =row.getCell(9).getStringCellValue();//收件人地址
                row.getCell(10).setCellType(HSSFCell.CELL_TYPE_STRING);
                String actlweit =row.getCell(10).getStringCellValue();//实际重量
                //强转成数据库需要的类型
                Double Dactlweit = Double.valueOf(actlweit);
                //封装对象
                Workordermanage workordermanage = 
                        new Workordermanage(id, null,null,null, 
                                null, null, prodtimelimit, prodtype, 
                                sendername, senderphone, senderaddr, receivername,
                                receiverphone, receiveraddr, null, Dactlweit, null, null, null);
                //多个对象用list存储
                list.add(workordermanage);
            }
            //存数据库
            workordermanageService.save(list);
            //关流
            hb.close();
        } catch (Exception e) {
            e.printStackTrace();
            response= "fail";
        }
        ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
        ServletActionContext.getResponse().getWriter().print(response);
        return NONE;
    }

excel数据[^footnote].
excel数据

附录[^footnote].

HSSF - 提供读写Microsoft Excel格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
HWPF - 提供读写Microsoft Word格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读写Microsoft Visio格式档案的功能。

注意[^footnote].
当数据不是excel数据不是string类型的,要转成string类型,才能被读出来

row.getCell(5).setCellType(HSSFCell.CELL_TYPE_STRING);
                String senderphone = row.getCell(5).getStringCellValue();
        </action>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值