报表在api导出excel的时候,如果遇到数据量较大时,一次性导出可能会导致内存溢出或程序卡死的情况。
那么,针对这种情况,润乾报表可以借鉴大报表的导出机制,即分批导出。 Api内可以算出总共分多少页(根据总条数和每页的条数),然后遍历页数按页导出到excel文件,且导出过程中每导出一页及时把当前页的缓存清掉,避免出现同样溢出的情况。
下面的内容为参考示例,报表总共800多条(测试用),代码中有详细的注释,当遇到类似情况时可直接参考使用:
importjava.sql.Connection;
import java.sql.Driver;
importjava.sql.DriverManager;
importcom.runqian.report4.cache.CacheManager;
importcom.runqian.report4.model.ReportDefine;
importcom.runqian.report4.model.engine.ExtCellSet;
importcom.runqian.report4.usermodel.Context;
importcom.runqian.report4.usermodel.Engine;
importcom.runqian.report4.usermodel.IReport;
importcom.runqian.report4.usermodel.PageBuilder;
importcom.runqian.report4.util.ReportUtils;
import</