java 操作excel报表

/**

*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;
 }
 
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值