1. 概述
本文介绍 导出 的一些问题及解决方案。
注1:jdk1.8.0_262,jdk-8u231,jdk1.8.0_192 三个版本不建议使用导出功能将普通报表导出为 PDF 或图片。
注2:使用 JS API 进行导出时,若文件名称含有中文,需要进行转译。
2. 常见问题及解决方案
2.1 导出的格子中显示灰色的箭头
问题描述
若将某张报表导出为 Word 格式,打开导出后的 Word,可以看到每个格子后都有一个灰色的箭头。如下图所示:
原因分析
在 Word 里,灰色的箭头代表段落的标记,即一行的结尾处显示的回车符号。
由于 FineReport 模板的界面是类似 Excel 的,且 Word 默认显示段落标记,所以导出为 Word 时,就会有段落标记。
解决方案
打开 Word,点击「文件>选项>显示」,取消勾选「段落标记」,就可以去掉灰色箭头了,如下图所示:
注1:取消勾选段落标记后,下次导出模板或者打开其他 doc 文档,都不会显示灰色箭头了。
注2:此操作只针对当前客户端,若将导出的文件发至别的客户端,需要在对应的客户端再进行如上设置。
2.2 导出的控件值与显示值不一致
问题描述
模板中存在控件,导出的控件值与预览时的显示值不一致,如下图所示:
原因分析
控件导出的是数据字典中的「实际值」,预览时显示的是数据字典中的「显示值」。如下图所示:
2.3 导出 Word 无内容/报错
问题描述
现象1:普通报表导出 Word 后无内容,但是导出 Excel 没有问题。
现象2:普通报表导出 Word 时报错11300002:行高列宽超出页面大小设置,如下图所示:
原因分析
模板中某个单元格的宽度超出页面设置的边界过多。
解决方案
查看分页虚线前的单元格宽度是否过大,缩小对应单元格宽度即可。如下图所示:
2.4 文字导出后显示为图片
问题描述
模板中预览时正常显示为文本内容,导出 Excel 时正常显示为文字,但导出 Word 后显示为图片。如下图所示:
原因分析
1)文本控制
选中单元格,点击「单元格属性>样式>对齐」,文本控制设置有四种,分别为「自动换行、单行显示、单行显示(调整字体)、多行显示(调整字体)」,除了「自动换行」,设置为其他三种导出 word 时,文字均显示为图片。
2)文本方向
选中单元格,点击「单元格属性>样式>对齐」,文本方向设置有三种,分别为「自定义角度、文字竖排(从左向右)、文字竖排(从右向左)」,除了「自定义角度」,设置为其他两种导出 word 时,文字均显示为图片。
2.5 设置页眉页脚后导出结果与分页预览效果不一致
问题描述
报表含有页眉或者页脚,导出后的 Word 与分页预览的结果不同,分页点不一致,内容下移或被断开显示了,如下图显示:
原因分析
Word 中页眉默认距离顶端 12.7 毫米,对应的是 FineReport 的页边距。
两者页边距、页眉的高度逻辑不同,导致导出 Word 后,报表内容可能被页眉挤下而造成下移或断开显示。
解决方案
点击菜单栏「模板>页面设置>页面」,将页边距的上边距设置为12.7mm,如下图所示:
此时预览及导出 Word 时,页眉的顶端距离一致,从而导出结果与预览结果一致。
2.6 模板双向自适应
问题描述
1)普通报表设置 模板自适应属性 为「双向自适应」,导出时,单元格内容被截断/行高变窄,如下图所示:
2)模板开启双向自适应后,在 Chrome 和 Firefox 浏览器下导出的 Word 和 PDF,可能存在多余空白页。如下图所示:
原因分析
普通报表导出为任何格式,都不支持自适应。
2.7 导出 PDF 时换行显示内容被截断
问题描述
模板单元格使用了分页公式,包含 $$totalPage_number 和 $$page_number 参数,分别表示「总页数」和「当前页数」,如下图所示:
预览时模板显示正常,导出为 Word、Excel 或 PDF 时,换行显示的内容被截断。如下图所示:
原因分析
分页需要依赖单元格的宽高,即单元格高度计算完成之后才能分页,然后分页公式才能得出计算值。所以当单元格使用了分页公式,在导出计算单元格高度时,实际获取不到分页公式的计算值,最终可能导致单元格高度计算错误,从而导致文字显示不全等异常。
解决方案
导出为 Word 或 Excel 时,是以表格的形式导出的,调整表格高度即可显示,导出 PDF 则需先手动调整设计器中单元格的高度。
2.8 模板使用 HTML 显示内容并导出 Word 格式
模板使用 HTML 显示内容,并导出 Word 格式时,需要注意以下几点:
1)HTML 内指定的字号要与单元格字号保持一致,如下图所示:
2)如果 HTML 内容中存在图片,建议点击「模板>模板导出属性」,使用「不固定行高导出」,如下图所示:
2.9 模板右侧内容丢失
问题描述
用户模板预览、模板导出为 PDF 格式都正常,导出为 Word 格式时右侧边框丢失,如下图所示:
原因分析
模板导出为 Word 格式,表格列数最大不超过 63 ,否则超过 63 列的模板内容丢失。
解决方案
调整模板所占的表格列数为 63 列以内。
2.10 导出 Word 上半截字体不显示
问题描述
用户单元格内容为 HTML 显示的一段文字,导出 Word 后,文字的上半截不显示。
解决方案
HTML 中设置的字体要与「单元格属性>样式>字体」中一致。
2.11 模板中含有条形码导出 Word 文字被遮挡
问题描述
模板中设置的有条形码,导出 Word 后,条形码下一行的文字被遮挡。
解决方案
条形码所在的单元格的高度设置大于等于 6mm 。
2.12 border-spacing 导出 Excel 报错
问题描述
模板导出 Excel ,报错:Invalid char (:) found at index (14) in sheet name 'border-spacing:10px 20px'
原因分析
sheet 名称导出 Excel 时,需注意以下两个问题:
sheet 的名称长度有限制,不能多于 31 个。若多于 31 个,导出时会被自动截取,可能会导致两个 sheet 名称相同,导出报错。
sheet 名称支持包含英文、汉字、| 、()等,但是不能包含: 、/、?、*、[]等。
2.13 同一报表导出 Word 是横向布局,导出 pdf 是纵向布局
问题描述
同一报表导出 Word 是横向布局,导出 pdf 是纵向布局。
原因分析
导出效果以 Office 为准,是报表横向自适应导致的纸张高度变化,这个报表的纸张高度超过了 Word 纸张设置的最大值 55.87 厘米,所以 Word 处理成默认的 27.94 厘米的高度。
解决方案
报表纸张高度超出的原因是开启了横向自适应,导出时的纸张高度和浏览器的页面大小有关。取消横向自适应后,导出正常。
2.14 导出 excel 报错提示公式被删除
问题描述
原样导出 excel 后,打开提示公式被删除,点击恢复后内容显示为 0 。
原因分析
模板中存在 excel 不支持的公式,如层次坐标。
解决方案
取消勾选「导出/编辑结果时,保留公式」。
2.15 导出 Excel 后字体变小
问题描述
模板内字体格式为仿宋 22 号,但是导出到 excel 后变小了为 20 号。
原因分析
excel 导出字体大于 15 时则为 (int)fontSize * 0.95 。
2.16 导出的 sheet 名称无法引用单元格值或参数值
问题描述
导出的 sheet 名称无法引用单元格值或参数值。
解决方案
需要自己手动加「=」等于号,最多 30 个字符。
2.17 决策报表/聚合报表导出,图片有拉伸
问题描述
决策报表/聚合报表导出,图片发生拉伸,与预览时效果不一致。
原因分析
决策报表/聚合报表导出,是先把报表转成格子报表,这一步会损失一部分属性, 导致格子行高列宽切割。
解决方案
图表改成单元格元素,把图表放在报表块里。
2.18 导出图表不显示自定义标签等内容
问题描述
新图表预览时正常,导出或打印时缺少自定义标签和自定义坐标轴等,预览效果:
导出或打印效果:
原因分析
标签和坐标轴使用了自定义图片和文字,如下图所示:
自定义是前台,导出打印都是调用的后台,导致部分内容无法显示。
解决方案
目前此种自定义标签的方式暂不支持导出或打印。
2.19 导出重命名乱码
问题描述
使用 IE 浏览器进行 导出重命名 时,若重命名的名称为中文的话,会出现乱码,为什么会出现这种乱码又如何解决呢?
如在浏览器中输入:http://localhost:8075/webroot/decision/view/report?viewlet=GettingStarted.cpt&format=pdf&__filename__=销量表
原因分析
对于中文来说,浏览器编码和服务器编码不一致,导致中文部分出现了乱码。
解决方案
解决方法与 URL 给参数传递中文值 类似。
1)若想直接在浏览器中输入并导出的话,可以将浏览器换成火狐或者谷歌浏览器。
2)若集成到项目中,可以使用 encodeURIComponent 方法,如点击某个链接调用导出重命名,此时可以使用如下方法:
window.location="http://localhost:8075/webroot/decision/view/report?viewlet=gettingstarted.cpt&format=pdf&__filename__="+encodeURIComponent("中文名称")
详细的内容可参考 编码转换 章节。
2.20 word 导出格式显示不完整
问题描述
报表预览时显示正常在导出为 word 后出现图表需要跨页显示但显示不完整,如下图所示:
原因分析
模板的大小超过了 word 的纸张大小要求。
解决方案
1)可以跳转word纸张大小与模板的页面设置一致,或略大于模板的页面设置。
2)需要修改模版纸张大小,不能超出 word 对于纸张大小的要求,必须在 2.6mm~558.5mm之间。
3)调整图表的位置,不要处于分页线处。
4)设置图表分页时不断开,但是这样的话图表可能会被分到下一页显示,意味着上一页会出现大片空白。
2.21 原样导出为Excel后使用WPS打开页眉页脚异常
问题描述
使用 wps 打开原样导出后的 excel 发现了页眉页脚异常,如下图所示:
原因分析
使用 WPS 打开后的显示问题。
解决方案
更换为 Excel 打开文件即可。