指定数据行导入到EXCEL中不同的sheet中

需求背景:

客户的报表是一个行数超出了65535行的数据表,预想按照每10000条数据导入到EXCEL中的sheet中。

需求实现:

我们通过如下API实现次需求。

public class ExpEXCELL {

public static void main(String[] args) throws Throwable {

Context cxt = new Context(); //构建报表引擎计算环境

String reportFile = “D:\\ demo\\reportFiles\\report_1.raq”; //该文件名可以为绝对路径,也可以相对当前程序启动路径

ExtCellSet.setLicenseFileName(“D:\\ License4.0[229101229154740_2290000]\\Server2011-06-30V4.0Windows.lic”); //设置授权文件

ReportDefine rd = (ReportDefine)ReportUtils.read( reportFile );

PrintSetup ps = new PrintSetup();

ps.setPagerStyle(ps.PAGER_ROW);

ps.setRowNumPerPage(100);

rd.setPrintSetup(ps);

Engine engine = new Engine(rd, cxt); //构造报表引擎

IReport iReport = engine.calc(); //运算报表

ReportUtils.exportToExcel(“D:/report_1.xls”,iReport, true);

}

}

我们使用名为report_1.raq的报表进行测试,由于数据量为855条记录,没那么大的数据量,所以,我们设置每个sheet中存100行数据,那么我们导出的EXCEL也就应该是9页,这里设置的只是数据区的行数,不包括报表头的行数。

注:setPagerStyle(byte style) style - 分页方式,取值为PAGER_NONE,PAGER_ROW,PAGER_SIZE,本例中设置的为PAGER_ROW,即按行分页。

setRowNumPerPage()设置按数据行数分页时每页的数据行数,本例设置的为100,即每页显示的数据行数为100行。