- 浏览: 70169 次
- 性别:
- 来自: 北京
最新评论
Posted in 集智
集智数据平台报表中设置的页眉页脚在页面中是看不到的,如下图:
页面中的效果:
在打印的时候,可以看到页眉页脚的效果:
那么,如果将页眉页脚导入到导出的excel中呢.我们可以通过API来进行设置:
<%@ page import=”com.runqian.report4.model.*”%>
<%@ page import=”com.runqian.report4.usermodel.*”%>
<%@ page import=”com.runqian.report4.view.excel.*” %>
<%@ page import=”com.runqian.report4.util.*” %>
<jsp:directive.page import=”org.apache.poi2.hssf.usermodel.HSSFWorkbook”/>
<jsp:directive.page import=”org.apache.poi2.hssf.usermodel.HSSFSheet”/>
<jsp:directive.page import=”org.apache.poi2.hssf.usermodel.HSSFHeader”/>
<jsp:directive.page import=”org.apache.poi2.hssf.usermodel.HSSFFooter”/>
<%
//设置所有report对象的值为GBK转码
request.setCharacterEncoding(”GBK”);
String reportFile = request.getParameter(”report”);
if( reportFile==null ){
reportFile = “report_4.raq”;
}
//第一步,读取报表模板
InputStream fis=application.getResourceAsStream(”/reportFiles/”+reportFile);
ReportDefine rd = (ReportDefine)ReportUtils.read( fis );
//第二步,设置报表授权文件,运算报表
Context context = new Context();
//计算前,设置参数与宏
ParamMetaData pmd = rd.getParamMetaData();
String paramOrMocrName = “”;
if(pmd != null){
for(int i = 0;i <pmd.getParamCount(); i ++){
paramOrMocrName = pmd.getParam(i).getParamName();
context.setParamValue(paramOrMocrName ,request.getParameter(paramOrMocrName));
}
}
MacroMetaData mmd = rd.getMacroMetaData();
if( mmd != null ){
for(int i = 0; i < mmd.getMacroCount(); i ++){
paramOrMocrName = mmd.getMacro(i).getMacroName();
context.setMacroValue(paramOrMocrName,request.getParameter(paramOrMocrName));
}
}
Engine enging = new Engine( rd, context);
IReport iReport = enging.calc();
//生成Excel文件,因为jsp里不能直接用response的out.print()方法,所以我们先在服务器上生成这个文件
String saveFile=request.getRealPath(”/reportFiles/”)+”/”+reportFile+”.xls”;
ExcelReport eReoprt = new ExcelReport();
eReoprt.export(iReport);
FileOutputStream fos = new FileOutputStream( saveFile );
eReoprt.saveTo(fos);
fos.close();
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(saveFile));
wb.setSheetName(0,”表1″);
HSSFSheet s=wb.getSheetAt(0);
HSSFHeader hss = s.getHeader();
//hss.setCenter(”aaaa”);
StringBuffer stringBuffer = new StringBuffer();
StringBuffer sb = new StringBuffer();
int rowNum = iReport.getRowCount();
int colNum = iReport.getColCount();
sb.append(”行数:“+rowNum+”;列数:“+colNum);
//页眉页脚分3部分(左中右),
int centerStartCol = colNum/3+1; //中间部分开始列
int rightStartCol = colNum/3*2+colNum%3+1; //右边部分开始列
sb.append(”;中间开始部分:“+centerStartCol+”;右边开始部分:“+rightStartCol);
//页眉左边部分
for(int i=1,j=rowNum;i<=j;i++){
IRowCell iRowCell=iReport.getRowCell(i);
if( iRowCell.getRowType()==iRowCell.TYPE_PAGE_HEADER ){
if(iRowCell.getRowVisible()!=false ){
for(int m=1,n=centerStartCol;m<=n;m++){
INormalCell cell = iReport.getCell(i,(short)m);
sb.append(”;左边部分:“+cell.isMerged());
Object obj=cell.getValue();
if(obj!=null){
stringBuffer.append(obj.toString());
HSSFHeader hh=s.getHeader();
hh.setLeft(stringBuffer.toString());
}
}
stringBuffer.append(”\r”);
}
}
}
stringBuffer.delete(0,stringBuffer.length());
//页眉中间部分
System.out.println(sb.toString());
for(int i=1,j=rowNum;i<=j;i++){
IRowCell iRowCell=iReport.getRowCell(i);
if( iRowCell.getRowType()==iRowCell.TYPE_PAGE_HEADER ){
if(iRowCell.getRowVisible()!=false ){
for(int m=rightStartCol,n=rightStartCol;m<=n;m++){
INormalCell cell = iReport.getCell(i,(short)m);
sb.append(”;中间部分:“+cell.isMerged());
Object obj=cell.getValue();
if(obj!=null){
stringBuffer.append(obj.toString());
HSSFHeader hh=s.getHeader();
hh.setCenter(stringBuffer.toString());
}
}
stringBuffer.append(”\r”);
}
}
}
stringBuffer.delete(0,stringBuffer.length());
System.out.println(sb.toString());
//页眉右边部分
for(int i=1,j=rowNum;i<=j;i++){
IRowCell iRowCell=iReport.getRowCell(i);
if( iRowCell.getRowType()==iRowCell.TYPE_PAGE_HEADER ){
if(iRowCell.getRowVisible()!=false ){
for(int m=centerStartCol,n=colNum;m<=n;m++){
INormalCell cell = iReport.getCell(i,(short)m);
sb.append(”;右边部分:“+cell.isMerged());
Object obj=cell.getValue();
if(obj!=null){
stringBuffer.append(obj.toString());
HSSFHeader hh=s.getHeader();
hh.setCenter(stringBuffer.toString());
}
}
stringBuffer.append(”\r”);
}
}
}
for(int i=1,j=iReport.getColCount();i<=j;i++){
IColCell irc=iReport.getColCell((short)i);
if(irc.getBreakPage()){
s.setColumnBreak((short)(i-1));
}
}
//结束分页
//页眉开始
HSSFHeader hh=s.getHeader();
System.out.println(”日期&D:”+HSSFHeader.date());
System.out.println(”当前页&P:”+HSSFHeader.page());
System.out.println(”页数&N:”+HSSFHeader.numPages());
System.out.println(”时间&T:”+HSSFHeader.time());
System.out.println(”日期&D:”+HSSFHeader.date());
//页眉结束
//设置页脚
HSSFFooter footer = s.getFooter();
footer.setCenter( “第 ” + HSSFFooter.page() + “ 共 ” + HSSFFooter.numPages());
//页脚结束
//标题行
System.out.println(”=========”+stringBuffer);
System.out.println(”第一行第五列:“+iReport.getCell(1,(short)5).getValue().toString());
//转跳到我们刚才生成的文件
wb.write(new FileOutputStream(saveFile));
System.out.println(”Excel文件生成结束,文件保存在:”+saveFile);
response.sendRedirect(request.getContextPath()+”/reportFiles/”+reportFile+”.xls”);
for(int i=1;i<=iReport.getColCount();i++){
System.out.println(iReport.getCell(1,(short)i).getValue());
}
%>
更多了解各种复杂问题的处理,可以参考:报表导出打印,展现导出打印各种复杂报表。
发表评论
-
RBP系统管理之日志管理
2011-09-26 22:57 877RBP的系统管理中设置了日志管理,通过『日志管理』功能模块 ... -
RBP中新增自由格式报表资源之自由格式风格
2011-09-26 22:19 883RBP的资源中心模块提供了新建资源的自由格式报表功能, ... -
决策分析平台(RBP)在weblogic8.1下的部署
2011-09-15 21:40 896润乾决策分析平台(简 ... -
润乾决策分析平台(RBP)功能模块介绍
2011-09-15 21:34 930润乾决策分析平台,简称RBP,英文全称为RAQ Busines ... -
决策分析平台(RBP)在tomcat下的部署
2011-09-15 21:26 1025润乾决策分析平台(简称RBP)是面向企业级应用的决策分析解决方 ... -
RBP系统管理之服务器参数管理
2011-09-15 21:18 827<p> </p> <p styl ... -
RBP系统管理之用户审批
2011-09-15 21:10 917RBP的系统管理中包括组织机构管理、业务角色管理、系统用 ... -
RBP系统管理之地区管理
2011-09-15 20:58 880RBP的系统管理中包括 ... -
RBP系统管理之系统用户管理
2011-09-15 20:46 822RBP的系统管理中包括组织机构管理、业务角色管理、系统用 ... -
RBP的个人信息管理与个人资料
2011-09-15 20:41 687RBP提供了个人信息管理和个人资料查看功能。下面就简单介 ... -
RBP中的密码规则与口令加解密参数
2011-09-15 20:29 942RBP的系统管理中提供 ... -
RBP系统管理之业务角色管理
2011-09-15 20:21 1159RBP的系统管理中包括 ... -
RBP系统管理之组织机构管理
2011-09-15 20:05 803RBP的系统管理中包括 ... -
润乾决策分析平台(RBP)用户授权机制介绍
2011-09-15 19:57 709润乾决策分析 平台(RBP)是面向企业端报表需要的客户提 ... -
RBP的参数配置文件reportConfig.xml介绍
2011-09-15 19:50 1226润乾决策分析 平台(RBP)的应用包reportmis/ ... -
参数和宏的极致使用
2011-08-30 22:52 1179本文通过一个使用参数和宏结合实现复杂数据权限需求的案例,分享给 ... -
集智数据平台两种数据源连接的配置方式
2011-08-30 22:44 789在集智数据平台中提供了两种数据源连接的配置方式,均通过repo ... -
润乾导出WPS office文档格式的说明
2011-08-26 23:05 932针对microsoft office的文档格式,WPS off ... -
.Excel进行数据转换后执行导入
2011-08-26 22:59 1016润乾报表提供了强大 ... -
在填报表中如何正确使用自动增长的字段
2011-08-26 22:43 692在多用户并发进行填报的时候,总会遇到一个发生率很高的问题,就是 ...
相关推荐
下面是一个简单的示例,演示了如何创建一个带有页眉、页脚和标题的Word文档: ```java import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.usermodel.*; public class PoiWordExample { ...
因此,掌握如何清除这些默认信息或者自定义页眉页脚是非常有必要的技能之一。 #### 二、实现原理 为了实现这一功能,我们可以利用JavaScript来修改注册表中的相应键值。具体来说,可以通过`WScript.Shell`对象调用...
通过这种方式,你可以利用ITextSharp 5.0创建一个带有自定义页眉和页脚的PDF文档。这个过程不仅适用于简单的文本,还可以进一步扩展以支持图片、表格和其他复杂布局。在实际应用中,你可以根据需求调整页眉和页脚的...
对于导出带图片的Excel,我们需要使用它的HSSF(处理老版97-2003 .xls格式)或XSSF(处理.xlsx格式)API。 2. **工作簿和工作表**:在POI中,工作簿(Workbook)代表整个Excel文件,而工作表(Sheet)代表其中的...
"NPOI基于模板导出到excel"是指利用NPOI库的功能,根据预先设计的模板来生成新的Excel文件,这在数据报表生成、批量数据处理和自动化办公场景中非常实用。 首先,让我们详细了解一下NPOI的主要功能和工作原理。NPOI...
iText生成PDF设置页眉页脚的实例详解 iText是java语言中一个功能强大、功能齐全的PDF生成库,通过使用iText可以生成各种类型的PDF文档,包括设置页眉页脚的PDF文档。下面将详细介绍如何使用iText生成PDF设置页眉...
除了平时简单的数据导出需求外,我们也经常会遇到一些有固定格式或者模板要求的数据导出,这个时候poi导出方式变得复杂且冗长,因此采用EasyExcel的方式进行导出,可以大大提高我们的开发效率和简洁我们的代码。...
NPOI提供了一个名为`HeaderFooter`的类,用于处理Excel工作表的页眉和页脚。要向页眉插入图片,我们需要创建一个`HeaderFooterManager`对象,然后利用它来处理图片的插入。图片数据通常需要先读取到内存中,然后转化...
本文将详细讲解如何使用给定的压缩包文件中的代码来实现这一功能,特别是导出带边框的Excel和将数据导入DataSet。 首先,"导入导出EXCEL"是指将数据库或其他数据源的数据写入Excel文件,或从Excel文件中读取数据并...
### POI Excel 模板读取并导出带公式的Excel文档 #### 一、概述 在实际工作中,经常需要批量处理数据,并将其导出到Excel文件中,特别是在需要复杂计算的情况下,例如工资单、统计数据汇总等场景。利用Apache POI...
对于每个带有`ExcelColumn`注解的字段,可以从对象中获取其值,作为Excel单元格的内容;对于`Sheet`注解,可以根据其属性创建新的工作表。 此外,为了提高工具的通用性,可以设计一个接口,如`ExcelExportable`,让...
5. **导出与导入**:保存和导入页眉页脚模板,方便在未来项目中重复使用。 6. **错误处理**:对于无法处理的文件,工具可能会给出错误提示,帮助用户定位问题。 在实际使用中,确保备份原始文件以防止意外修改,...
在IT行业中,导出带图片的Excel服务是一项常见的需求,特别是在数据分析、报告生成或数据可视化的情景下。本文将详细讲解如何使用Visual Studio 2013开发这样的服务。 首先,我们需要了解Excel导出的基本原理。在...
本教程将专注于使用PHP生成带有图片的Excel文件,并解决文件保存后可能出现的乱码问题。我们将探讨如何利用PHP的第三方库来实现这一功能,以及处理过程中需要注意的关键点。 首先,PHP自身并不直接支持创建Excel...
【lodop导出ExcelDemo】是一个基于LODOP技术实现的JavaScript示例,它展示了如何通过LODOP组件将网页中的数据导出为Excel文件。这个功能在许多Web应用程序中非常实用,允许用户方便地保存和处理数据。下面将详细阐述...
在IT领域,导出Excel功能是一项非常常见的需求,特别是在数据分析、报表生成以及数据共享等场景中。Excel作为一款强大的电子表格软件,因其易用性、灵活性和强大的计算能力,成为了企业和个人处理数据的首选工具。...
Nodejs导出Excel带图片,Nodejs后台导出带图片Excel 本资源内有说明及使用安装等详细步骤,以及引入插件 由于nodejs导出Excel带图片的资源比较少,我也是找了许久才知道怎么写的,这里发布个收费的,望各位见谅!
5. **数据导出**:数据通常以表格形式导出,可以使用DataFrame或DataTable对象来存储数据,然后通过选择合适的API将数据写入Excel文件。 6. **异步处理**:由于导出可能涉及大量数据,应考虑使用异步操作以提高用户...
Java 生成word文件,带样式,带页眉,带页码,带图片,带表格,需要相关iText包,包可在http://download.csdn.net/detail/wuxinxing1981/8055977 链接下载。
在JavaScript(js)环境中,将数据导出为带有样式的Excel文件是一项常见的需求,尤其在Web应用程序中。这个"js导出带样式的excel.zip"压缩包提供了一种解决方案,它基于layui框架,一个轻量级且易于使用的前端UI库。...