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();­


       
上一篇:Visual Studio 2010 中的 Web 开发


下一篇:Python全栈考试(一)