API设置报表导出excel的显示比例
报表导出excel时默认的是以75%的比例导出的,这是因为75%的显示比例最接近页面展现的效果,但是有时用户在导出excel的时候可能需要将显示比例设置成100%的。而通用报表展现页面的导出程序已经封装好,没有办法去调整导出的比例,所以需要采用API来控制导出excel的显示比例,下面就介绍一下设置的方法。
首先读入一个报表模板:
String filePath = readPath;//设置报表的路径
System.out.println(“<<<<<<<<<<<<<<<<<”+filePath);
intdispratio = ratio;//设置显示比例,如75%那么就是75
try{
//读取报表模板
ReportDefinerd = (ReportDefine) ReportUtils.read(filePath );
然后构造报表的计算引擎:
Context context = newContext();
Engine enging = new Engine( rd, context);//构造报表计算引擎
导出excel的方法:
ReportUtils.exportToExcel(exportPath, iReport, bool,dispratio);
上面方法的是个参数分别为:导出的路径,ireport报表对象,是否分页,导出的比例,其中最后一个参数就是控制导出比例的。
完整的代码封装到一个方法中后,代码如下:
packagecom.zhengzhong.practise;
import com.runqian.report4.usermodel.*;
import com.runqian.base4.util.*;
import com.runqian.report4.model.*;
import com.runqian.report4.util.*;
import com.runqian.report4.cache.CacheManager;
import java.io.*;
public class ExportExcel {
public String getFilePath(String readPath,StringexportPath,Booleanbool,int ratio) {
String filePath = readPath;
System.out.println(“<<<<<<<<<<<<<<<<<”+filePath);
intdispratio = ratio;
try{
//读取报表模板
Context context = new Context();
ReportDefinerd = (ReportDefine) ReportUtils.read(filePath );
//运算报表
//创建要导出的excel报表
//计算前,设置参数
//ParamMetaDatapmd = rd.getParamMetaData();
Engine enging = new Engine(rd, context);
IReportiReport = enging.calc();
//String ename = name.replace(“.raq”, ”.xls”);
System.out.println(“>>>>>>>>>>>>>>>>>>>>>>>>>>[ToExcelServlet] - 运算报表结束!”);
ReportUtils.exportToExcel(exportPath, iReport, bool,dispratio);
} catch(Exception e ){
e.printStackTrace();
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
returnexportPath;
}
}
调用上面的方法导出excel,设置导出的比例为100,调用的方法如下:
packagecom.zhengzhong.practise;
publicclassExportExcelMain {
/**
*@paramargs
*/
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub
ExportExcelee = newExportExcel();
ee.getFilePath(“F:\\qwer.raq”, ”F:\\qwer.xls”, false, 100);
}
}
执行过后,可以查看excel,效果如下:
可以看到显示比例变成100%了,这样API设置报表导出excel比例的需求就实现了。