我对文本的一部分使用粗体样式,所以它看起来像:
"<style isBold = 'true'>" + $P{REPORT_RESOURCE_BUNDLE}.getString("report.label.foo") +": "+"</style>"+$F{foo}
在jrxml这个 textField
看起来像:
<textField>
<reportElement style="moduleBorderColumnStyle" mode="Opaque" x="0" y="0" width="555" height="20" uuid="6adbbfa7-e549-4378-903c-04095c2f34c4"/>
<textElement markup="styled"/>
<textFieldExpression><![CDATA["<style isBold = 'true'>" +
$P{REPORT_RESOURCE_BUNDLE}
.getString("report.label.foo")
+": "+"</style>"+$F{foo}]]></textFieldExpression>
</textField>
TextField Markup property - styled
它适用于PDF和HTML . 但是,我在使用 XLSX 时遇到问题 .
不幸的是,即使直接将字体大小设置为14(我之前尝试从样式设置它)我得到整个标签的字体 11 callibri (这是默认字体),它使用标签 <style isBold='true'>
.
我尝试了同样的 <b> text </b>
和markup = HTML - 结果没有改变 .
Conclusion: Any styled text in XLSX is insensitive for fonts (sets it to default), how can this be resolved?
EDIT:
我发现问题是我之前申请的样式,但是问题仍然存在于excel中 . <style>
标记只是将其覆盖为默认字体和字体大小 .
1 回答
我可以在导出到
xlsx
时确认相同的错误,样式被忽略,它似乎与为XSSFSheet
中的单元格创建RichTextString
有关 . (不正确/没有字体设置为RichTextString
?)重现bug的简单示例
jrxml (SimpleTest.jrxml)
java code to export to xls and xlsx
Output xls (left), xlsx (right)
解决
在
textField
上执行 not use style ,因此将样式直接应用于textField
.在示例中,我们将
forecolor="#CC0000"
和fontSize="14"
添加到textField
并删除style
属性