使用场景:
下面列出两个使用场景
1.页面导入excel,导入页面前需要对excel文件做处理,比如在excel中增加、插入列或者修改excel中的数据。
2.导入excel时,需要对excel中的数据与报表中的数据做比对。
用法: 在html标签中增加了一个属性 importExcelListener 导入excel时的监听器类名,值为类的全包名,如com.mycom.MyExcelListener,缺省为没有监听器
源码: 此监听类由用户编写的java类实现,它必须从com.runqian.report4.usermodel.input.AbstractExcelListener类继承,此类的源程序如下: package com.runqian.report4.usermodel.input; import com.runqian.report4.usermodel.*; public class AbstractExcelListener implements IExcelListener { /** 网页中的表格对应的报表对象 */ protected IReport webReport; /** excel文件对应的报表对象 */ protected IReport excelReport; /** * 设置报表对象,此方法由系统调用 * @param webReport 网页中的表格对应的报表对象 * @param excelReport excel文件对应的报表对象 */ public void setReports( IReport webReport, IReport excelReport ) { this.webReport = webReport; this.excelReport = excelReport; } /** * 此方法中实现监听处理,可抛出异常终止导入 * @throws Throwable */ public void process() throws Throwable { return; } } 实例: 下面是一个监听类的实例 import com.runqian.report4.usermodel.input.*; public class MyExcelListener extends AbstractExcelListener { public void process() throws Throwable { String webA1 = webReport.getCell( 1, (short)1 ).getValue().toString(); String excelA1 = excelReport.getCell( 1, (short)1 ).getValue().toString(); if( !webA1.equals( excelA1 ) ) { throw new Exception( “报表与excel中A1单元格的值不相等,不能导入!” ); } } }