Java版将EXCEL表数据导入到数据库中

1.采用第三方控件JXL实现

    1. 
      
      try  
              {  
                  //实例化一个工作簿对象  
                Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls"));  
                //获取该工作表中的第一个工作表  
                Sheet sheet=workBook.getSheet(0);  
                //获取该工作表的行数,以供下面循环使用  
                int rowSize=sheet.getRows();  
                for(int i=0;i<rowSize;i++)  
                {  
                    //编号  
                    String id=sheet.getCell(0,i).getContents();  
                    //转来单位及文号  
                    String turn_unit=sheet.getCell(1,i).getContents();  
                    //来信人姓名  
                    String reg_name=sheet.getCell(2,i).getContents();             
                    //来信人单位或住址  
                    String reg_unit=sheet.getCell(3,i).getContents();  
                    //来信内容  
                    String reg_content=sheet.getCell(4,i).getContents();  
                    //来信日期  
                    Date reg_time = java.sql.Date.valueOf(sheet.getCell(5,i).getContents());  
                    //信访事项发生地或单位  
                    String reg_eventUnit=sheet.getCell(6,i).getContents();  
                    //处理情况  
                    String do_case=sheet.getCell(7,i).getContents();  
                    //处理日期  
                    Date do_time=java.sql.Date.valueOf(sheet.getCell(8,i).getContents());  
                    //问题归类  
                    String problem_type=sheet.getCell(9,i).getContents();  
                    //问题所属系统  
                    String problem_system=sheet.getCell(10,i).getContents();  
                    //督办时间及文号  
                    String wenhao=sheet.getCell(11,i).getContents();  
                    //经办人  
                    String processor=sheet.getCell(12,i).getContents();  
                    //备注  
                    String remark=sheet.getCell(13,i).getContents();  
                    LcTOldRegServiceImpl regService=new LcTOldRegServiceImpl();              
                    LctOldReg reg=new LctOldReg(id,turn_unit,reg_name,reg_unit,reg_time,do_time,wenhao,problem_system,problem_type,reg_eventUnit,remark,reg_content,processor,do_case);  
                     //执行保存数据到数据库语句…….  
                    regService.add_qzlx(reg);  
                    System.out.print("已成功导入第"+id+"条纪录");  
                }  
                return mapping.findForward("import_success");  
              }  
              catch(Exception ex)  
              {  
                  System.out.print(ex.getMessage());  
                  return mapping.findForward("import_faile");  
              }  
      
      

       

      
      

      2.添加POI jar包到项目的lib目录下

      public class TestExcel {­
             //记录类的输出信息­
             static Log log = LogFactory.getLog(TestExcel.class); ­
             //获取Excel文档的路径­
             public static String filePath = "D://excel.xls";­
            public static void main(String[] args) {­
                   try                   // 创建对Excel工作簿文件的引用­
                         HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));­ 
                         // 在Excel文档中,第一张工作表的缺省索引是0
                         // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);­
                         HSSFSheet sheet = wookbook.getSheet("Sheet1");­
                         //获取到Excel文件中的所有行数­
                         int rows = sheet.getPhysicalNumberOfRows();
                         //遍历行­
                         for (int i = 0; i < rows; i++) {­
                               // 读取左上端单元格­
                               HSSFRow row = sheet.getRow(i);­
                               // 行不为空­
                               if (row != null) {­
                                     //获取到Excel文件中的所有的列­
                                     int cells = row.getPhysicalNumberOfCells();­
                                     String value = "";     ­
                                     //遍历列­
                                     for (int j = 0; j < cells; j++) {­
                                           //获取到列的值­
                                           HSSFCell cell = row.getCell(j);­
                                           if (cell != null) {­
                                                 switch (cell.getCellType()) {­
                                                       case HSSFCell.CELL_TYPE_FORMULA:­
                                                       break                                                 case HSSFCell.CELL_TYPE_NUMERIC:­
                                                             value += cell.getNumericCellValue() + ",";        ­
                                                       break;  ­
                                                       case HSSFCell.CELL_TYPE_STRING:­
                                                             value += cell.getStringCellValue() + ","                                                 break                                                 default                                                       value += "0"                                                 break                               }      
                               // 将数据插入到mysql数据库中­
                               String[] val = value.split(",");­
                               TestEntity entity = new TestEntity();­
                               entity.setNum1(val[0]);­
                               entity.setNum2(val[1]);­
                               entity.setNum3(val[2]);­
                               entity.setNum4(val[3]);­
                               entity.setNum5(val[4]);­
                               entity.setNum6(val[5]);­
                               TestMethod method = new TestMethod();­
                               method.Add(entity);­
             } catch (FileNotFoundException e) {­
                   e.printStackTrace();­
             } catch (IOException e) {­
                   e.printStackTrace();­
      

       

       

       

posted on 2014-07-17 10:34  暮光之眼  阅读(2029)  评论(0编辑  收藏  举报