excel导入前校验

问题描述:

遇到客户提出过问题,能否在导入excel前对导入的excel内容进行校验,满足条件后才能导入到报表中。

解决思路:

在导入excel中首先要将excel的数据读入到报表文件中的excelReport进行取值校验即可。

操作步骤:

1,取report4.jar geeznReport4.tld(分别包含有AbstractExcelListener类和importExcelListener标签属性) 分别放到web_inf/lib web-inf 下面;

2,编写相关的java文件,并将对应的class文件放到 classes下的包路径下

java文件如下(功能是检验excel2列数据是不是整型)

package com.test;

import com.geezn.report4.usermodel.input.AbstractExcelListener;

public class myExcelImportRule extends AbstractExcelListener {

public void process() throws Throwable {

int rowNum=excelReport.getRowCount();

short k=excelReport.getColCount();

int colNum=k;

System.out.println(“行为“+rowNum+”列为“+colNum);

for(int i=1;i<=colNum;i++ ){

//判断第2列的是不是整型

if(i==2){

//一般excel中有表头 表头行不导入

for(int j=2;j<=rowNum;j++){

Object obj=excelReport.getCell( j, (short)i ).getValue();

//下面设置规则

if(obj == null ){

throw new Exception( “导入的excel文件中第“+j+”行第“+i+”列为null” );

}else{

try{

Integer tem=Integer.parseInt(obj.toString());

}

catch (Exception e){

throw new Exception( “导入的excel文件中第“+j+”行第“+i+”列非整型” );

}

}

}

}

}

}

}

3.raq发布的jsp中增加excel导入监听类标签属性

如在showReport.jsp reporthtml 下面加入

needImportExcel=”yes”

importExcelListener=”com.test.myExcelImportRule”

4.页面导入测试

为空测试:

非整测试: