excel导入前校验
问题描述:
遇到客户提出过问题,能否在导入excel前对导入的excel内容进行校验,满足条件后才能导入到报表中。
解决思路:
在导入excel中首先要将excel的数据读入到报表文件中的excelReport进行取值校验即可。
操作步骤:
1,取report4.jar 和 geeznReport4.tld(分别包含有AbstractExcelListener类和importExcelListener标签属性) 分别放到web_inf/lib 和web-inf 下面;
2,编写相关的java文件,并将对应的class文件放到 classes下的包路径下
java文件如下(功能是检验excel第2列数据是不是整型)
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 的report:html 下面加入
needImportExcel=”yes”
importExcelListener=”com.test.myExcelImportRule”
4.页面导入测试
为空测试:
非整测试: