如何在打印预览中设置excel标题字体和样式?

时间:2016-09-23 08:32:59

标签: header jasper-reports export-to-excel

我正在使用iReport 5.6.0创建报告, 我想在打印预览时为excel添加标题,我尝试在jrxml中添加此行

<property name="net.sf.jasperreports.export.xls.sheet.header.left" value="My Left Text"/>
<property name="net.sf.jasperreports.export.xls.sheet.header.center" value="My Center Text"/>
<property name="net.sf.jasperreports.export.xls.sheet.header.right" value="My Right Text"/>

这很好用,但问题是我不知道如何添加字体样式或字体大小。

有没有办法可以添加字体样式,字体大小或字体颜色?

1 个答案:

答案 0 :(得分:3)

  

Jasper报告没有可以指定用于标题的字体的属性。

但我们可以做一些疯狂的事情

Jasper报告使用Apache POI导出到Excel,在POI中设置页眉,使用这样的命令(参见HSSFHeader

header.setCenter(HSSFHeader.font("Calibri", "bold") + HSSFHeader.fontSize((short) 16) + "My Center Text");

这实际上是生成一个设置为居中的字符串。

&"Calibri,bold"&16My Center Text

由于我们需要将其放在xml属性中,因此我们需要将"&quot;&&amp;一起转义。

<property name="net.sf.jasperreports.export.xls.sheet.header.center" 
         value="&amp;&quot;Calibri,bold&quot;&amp;16My Center Text"/>

<强>瞧

Result

要了解从不同样式切换和使用其他POI属性时字符串应该如何,最简单的方法是创建一个小型java程序,例如

System.out.println(HSSFHeader.font("Times New Roman", "regular") + 
         HSSFHeader.fontSize((short) 12) + "My " + HSSFHeader.startBold() + "Bold" + 
         HSSFHeader.endBold() + " Text with date " + HSSFHeader.date());
  

&amp;“Times New Roman,regular”&amp; 12My&amp; BBold&amp; B Text with date&amp; D

只是转义并插入到值属性