一个简单的excel文件上传到数据库方法

因为以前项目中有用到过Excel导入,所以整理了一下,这是一个导入Excel数据到数据库的方法

注意:需要导入poi jar包

代码清单

/**
     * Excel 导入
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    public ActionForward inpexcel(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        UsForm uf = (UsForm)form;
        String url = uf.getUrl();//获取Excel文件路径
        int input = 0;
        String name = null;
        String age = null;
        String sex = null;
        String likes = null;
        InputStream inputstream;
        try {
            inputstream = new FileInputStream(url);
            HSSFWorkbook hssfworkbook = new HSSFWorkbook(inputstream);
             HSSFSheet hssfsheet = hssfworkbook.getSheetAt(0);//第一个工作表
             HSSFRow hssfrow = hssfsheet.getRow(0);//第一行
       
       //遍历该表格中所有的工作表,i表示工作表的数量 getNumberOfSheets表示工作表的总数
                for (int i = 0; i < hssfworkbook.getNumberOfSheets(); i++) {
                 hssfsheet = hssfworkbook.getSheetAt(i);
                 
                 //遍历该行所有的行,j表示行数 getPhysicalNumberOfRows行的总数
                    for (int j = 1; j < hssfsheet.getPhysicalNumberOfRows(); j++) {
                     hssfrow = hssfsheet.getRow(j);
                     //判断是否还存在需要导入的数据
                        if (hssfrow == null) {
                         System.out.println("这里已没有数据,在第"+i+"列,第"+j+"行");
                         break;
                        }
                        /**将EXCEL中的第 j 行,第一列的值插入到name*/
                        if (hssfrow.getCell((short) 0) == null) {
                         name = "";
                        } else if (hssfrow.getCell((short) 0).getCellType() == 0) {
                         name = new Double(hssfrow.getCell((short) 0).getNumericCellValue()).toString();
                        }
                        //如果EXCEL表格中的数据类型为字符串型
                        else {
                         name = hssfrow.getCell((short) 0).getStringCellValue().trim();
                        }
                        /**将EXCEL中的第 j 行,第二列的值插入到sex*/
                        if(hssfrow.getCell((short) 1) == null){
                         sex = "";
                        } else if(hssfrow.getCell((short) 1).getCellType() == 0) {
                            sex = new Double(hssfrow.getCell((short) 1).getNumericCellValue()).toString();
                        }
                        //如果EXCEL表格中的数据类型为字符串型
                        else {
                            sex = hssfrow.getCell((short) 1).getStringCellValue().trim();
                        }
                        /**将EXCEL中的第 j 行,第三列的值插入到age*/
                        if(hssfrow.getCell((short) 2) == null){
                         age = "";
                        } else if(hssfrow.getCell((short) 2).getCellType() == 0) {
                            age = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
                        }
                        //如果EXCEL表格中的数据类型为字符串型
                        else {
                            age = hssfrow.getCell((short) 2).getStringCellValue().trim();
                        }
                        /**将EXCEL中的第 j 行,第三列的值插入到likes*/
                        if(hssfrow.getCell((short) 3) == null){
                         likes = "";
                        } else if(hssfrow.getCell((short) 3).getCellType() == 0) {
                            likes = new Double(hssfrow.getCell((short) 3).getNumericCellValue()).toString();
                        }
                        //如果EXCEL表格中的数据类型为字符串型
                        else {
                            likes = hssfrow.getCell((short) 3).getStringCellValue().trim();
                        }
                        
                        name = name.trim();
                        sex = sex.toUpperCase();//将取到的值赋给uf对象存储
                        uf.getUf().setName(name);
                        uf.getUf().setAge(age);
                        uf.getUf().setSex(sex);
                        uf.getUf().setLikes(likes);
                        Session session = HibernateSessionFactory.getSession();//hibernate 存储
                        Transaction tx = session.beginTransaction();
                        session.save(uf.getUf());
                        tx.commit();
                        session.close();
                        //导入成功加1
                        input++;
                    }
                }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return mapping.findForward("suc");
    }
原文地址:https://www.cnblogs.com/huxdiy/p/Excel.html