发布于 2012年06月27日
问题背景:
在JavaEE开发中,我们少不了做一些报表导出工作,但最苦恼的莫过于报表的设计,一个像素一个像素的调整给我们带来很多不便。今天一客户指出,我们系统中的其中一个模块导出Excel时,一个字段占用了多个列,用客户的话说:你们不要把单元格合并了嘛,介个样子我们后期处理很麻烦的撒。
问题描述:在背景中所指出的问题,其对象就是一普通的报表,客户所描述的意思是,比如一个姓名字段,我们可以看到它占用了Excel单元格的B列跟C列,有的字段会占用更多的列,之前对这问题没研究过,以至于我想当然的以为是PageHeader或detail部分哪两个元素之间没有紧挨着,尽管这样的确会出现这样的问题,但实际上,今天所遇到的并不是因为这个原因。
问题解决:
实际上,iReport会为我们每个Field分配一列,如果上下两个元素(比如上一个元素$P{name}在PageHeader中作为导出表格的表头,下一个元素$V{name}在detail中作为具体的值)宽度相同,而且边缘也对齐的话,那么iReport会将这两个元素分配在同一列中,倘若这两个元素左右边框没有对齐,那么他们左右边框加起来一共有多少个不同的横坐标值,在导出的Excel中就会出现多少个边框线,这里假设为N,那么iReport就会为这两个元素分配N-1列。
注意事项:
一般在pageHeader和detail中,我们都不会忽略这一点,但在title及summary中,同样遵循这个原则,也就是没多出一个元素,如果这个元素的横坐标与其它的都不同,则iReport就会为其多分配一列。
发布于 2012年06月27日问题背景:在JavaEE开发中,我们少不了做一些报表导出工作,但最苦恼的莫过于报表的设计,一个像素一个像素的调整给我们带来很多不便。今天一客户指出,我们系统中的其中一个模块导出Excel时,一个字段占用了多个列,用客户的话说:你们不要把单元格合并了嘛,介个样子我们后期处理很麻烦的撒。问题描述:在背景中所指出的问题,其对象就是一普通的报表,客户所描述的意
dptid 部门编号
根据接受过来的参数进行文档命名。
UserInfo userInfo=(UserInfo)request.getSession().getAttribute("userInfo");
String userid=userInfo.getUserID();
用户期望的数据
这是使用到的jar包,由于使用的是XSSFWorkbook所以jar较多(如果用HSSFWorkbook 就只需要导入poi这
一个
jar就行,两者的差异是HSSFWorkbook 最多能创建255
列
),注意版本4.0以上会报错。目前未找到
解决
方案
package com.wfr.demo;
import java.io.F...
@RequestMapping("export")
public void export(HttpServletRequest request, HttpServletResponse response,Integer areaId ,GoldSendVo filter ,String fafangTimeString) throws IOException {
response.setC
在Cognos报表展示的时候,很多用户为了计算会把数据报表
导出
成
excel
然后再做统计,于是乎我做的一张报表
导出
成
Excel
的时候就出现了这样的
问题
从上图可以看出交叉表角对应的
列
‘一级手术’和‘二级手术’在报表里面是一
列
数据,但是
导出
的时候却
占用
了两
列
,而后面非交叉表角对应的
列
导出
显示正常
问题
分析:
1:是表格布局
问题
,于是看了看其他
导出
正常的,表格布局正常啊,于是排除了表格的
问题
...
代码是学习此链接
代码大致流程如下(用的是POI):
**1.**拿到所有表头放到二维数组,其中有一级表头的
列
:创建一维新数组,把一级放数组的[0],二级放数组的[1][2]这样的,内容放到list
**2.**创建新的
Excel
,然后创建新的sheet
**3.**创建title-按照所有表头创建第一行,若遇到二级的-正常创建,遇到一级表头(第一步中的一维数组),取出一维数组的第
一个
(即一级表头),并合并一级表头所占的
列
**4.**类似第三步,创建title-按照所有表头创建第一行,若遇到二级的-正常创
peakgao:
Android ADB emulator-5554 unauthorized
Yanijiang: