知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 报表技术分享 > 快逸报表对导出的excel文件中sheet命名

快逸报表对导出的excel文件中sheet命名

导出excel时,我们可以选择导出的excel是否分页,如果分页,报表就会被分成若干个sheet来保存,这些sheet会自动命名成为sheet1,sheet2…,但是有些时候这样的命名不能满足用户的需求,用户需要从每个sheet名字中看出相应的信息,如订单明细1,本文就来介绍一下如何设置sheet名字。

下面就说一下用标签发布报表和用API发布报表设置sheet名字的方法。

一.用标签发布报表时设置sheet名字的方法:

用快逸提供的标签发布报表时,给标签“saveAsName”设置一个属性值就可以了,sheet的名字就用“saveAsName”的值命名,如果报表分页了,则系统会自动在sheetName后面加上1、2、3。如下标签

<report:html name=”report1″

reportFileName=”<%=report%>”

needPageMark=”yes”

needSaveAsExcel=”yes”

saveAsName=” 订单明细” //报表另存为Excel、PDF或离线填报

//的文件名(不用带扩展名),默认值与报表同名

/>

二.用API发布报表设置sheet名字的方法

本示例导出Excel的JSP如下:

<%@ page contentType=”text/html;charset=GBK” %>

<jsp:directive.page import=”com.runqian.report4.usermodel.Context”/>

<jsp:directive.page import=”java.io.File”/>

<jsp:directive.page import=”com.runqian.report4.util.ReportUtils”/>

<jsp:directive.page import=”com.runqian.report4.usermodel.*”/>

<jsp:directive.page import=”com.runqian.report4.view.excel.ExcelReport”/>

<jsp:directive.page import=”com.runqian.report4.model.ReportDefine”/>

<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %>

<html>

<body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0>

<%

String reportFileHome=Context.getInitCtx().getMainDir();

String raqName = request.getParameter(“raq”);

String path = application.getRealPath(reportFileHome+ File.separator +raqName);

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

ReportDefine rd = (ReportDefine)ReportUtils.read(path);//读取报表

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

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

//定义导出excel的report对象

ExcelReport excelReport = new ExcelReport();

//输出不分页的报表对象,第一个参数为sheet的名字

excelReport.export(“订单明细”,iReport);

//生成excel文件,保存在d盘

excelReport.saveTo(“d:\\订单明细.xls”);

%>

</body>

</html>

上面是设置不分页报表的方法,如果报表分页,要用下面的方法为excel中的sheet命名

PageBuilder pageBuilder = new PageBuilder(iReport);//定义一个分页报表的对象

er.export(sheetName, pageBuilder); //自定义sheet名称输出PageBuilder,如PageBuilder有多页,则系统会自动在sheetName后面加上1、2、3

 

如果以后遇到类似情况,就可以按照上面的方法实现了。

本文标签: