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