您的位置:首页 > 编程语言 > Java开发

java 操作excel报表

2013-12-20 16:19 441 查看
/**

*excel 报表倒入

*/

 

public String AlarmDevExcelImport()

 {

  Workbook wb=null;

  try {   

   //定义工作簿

   try {

     wb = Workbook.getWorkbook(upFile);

   } catch (BiffException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   }

   if(wb == null)

   {

    excelBack="导入文档格式不正确,请您确认格式正确后导入";

    return INPUT;

   }

   //获得excel文档工作簿数组

   jxl.Sheet[] sheet = wb.getSheets();

     

   if(sheet !=null && sheet.length>0)

   {

    //遍历工作簿

    for(int i = 0 ;i < sheet.length;i++)

    {

    //获得第i个工作簿数据的行数

     int rowNum = sheet[i].getRows();

     //遍历第i个工作簿的数据

     for(int j = 0;j<rowNum;j++)

     {

      //获得当前行的所有数据

      Cell[] cell = sheet[i].getRow(j);

       if(cell!=null && cell.length>0)

       {

       try{

        if(null!=cell[0] && !("".equals(cell[0].getContents())) && null!=cell[1] && null!=cell[2] && null!=cell[3] && !("".equals(cell[1].getContents())) && !("".equals(cell[2].getContents()))&& !("".equals(cell[3].getContents())))

        {

         //排除第一行数据

         if(j>0)

         {

          AlarmDev alarmDev=new AlarmDev();

           // 定义IP地址正则表达式

                   String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."

                           + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

                           + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

                           + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";

                  //定义MAC地址正则表达式

                   String  regMac = "[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}";                   

                String str1 = cell[1].getContents();

          String str2 = cell[2].getContents();

         

          if(!str2.matches(regex) )

          {

          excelBack="导入文档格式不正确,请您确认格式正确后导入";

           return INPUT;

          }

          String str3 = cell[3].getContents();

         

         String str_mac="";

             if(str3!=null){ 

                 for(int k=0;k<str3.length();k++){ 

                     char c = str3.charAt(k); 

                     if(Character.isLowerCase(c)){ 

                      str_mac+=Character.toUpperCase(c);  

                     } 

                     else

                     {

                      str_mac+=c;

                     }

                 }

             }           

          if(!str_mac.matches(regMac))

          {

          excelBack="导入文档格式不正确,请您确认格式正确后导入";

           return INPUT;

          }

          alarmDev.setPcName(str1);

          alarmDev.setPcIp(str2);

         

          alarmDev.setPcMac(str3);

          //IP地址唯一验证

          if(alarmDevService.queryByIP(str2)==null)//判断数据库中是否存在该IP地址

          {

           //如果数据库中不存在保存数据到数据

           alarmDevService.insert(alarmDev);

          }

          else

          {

          int alarmId = alarmDevService.queryByIP(str2).getId();

          alarmDev.setId(alarmId);

          //修改数据库已有数据

          alarmDevService.revcAlarmDev(alarmDev);

          

          }

         }

        }

        else

        {

        continue;

        }

       }

       catch(Exception e)

       {

       excelBack="导入文档格式不正确,请您确认格式正确后导入";

       return INPUT;

       }

       }

      

     }

    }

   }

   wb.close();

   

  } catch (Exception e) {

   // TODO Auto-generated catch block

   e.printStackTrace();

  }

  finally

  {

   wb.close();

  }

  

  return SUCCESS;

 }

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java excel 报表