[英]PrimeFaces 12 DataExporter decimal numbers xls
更新到 PrimeFaces 12 时,DataExporter 在 xls 中格式化十进制数字时出现错误。 示例:正在打印 50.00 5,000 注意:下面的尝试在本地(win10)解决了问题,但问题在服务器上仍然存在。
<f:facet name="header">
<div align="center">
<p:outputPanel style="float: right;">
<h:commandLink id="gerarXls" styleClass="table-button generateXls">
<p:graphicImage name="/images/table-icons/file-xls.svg"/>
<p:dataExporter type="xls" target="datatableOrdemServico" fileName="Ordens de Servico"
options="#{dataExporterCustomizedView.excelOpt}"/>
</h:commandLink>
</p:outputPanel>
</div>
</f:facet>
<p:column width="50" style="text-align: right"
sortBy="#{ordemServico.totalGeral}" filterMatchMode="contains" filterBy="#{ordemServico.totalGeral}">
<f:facet name="header">
<h:outputText value="Total OS"/>
</f:facet>
<h:outputText value="#{ordemServico.totalGeral}" >
<f:convertNumber minFractionDigits="2" locale="pt-BR"/>
</h:outputText>
</p:column>
public class DataExporterCustomizedView implements Serializable {
private ExcelOptions excelOpt;
@PostConstruct
public void init() {
excelOpt = new ExcelOptions();
excelOpt.setFacetBgColor("#F88017");
excelOpt.setFacetFontSize("10");
excelOpt.setFacetFontColor("#0000ff");
excelOpt.setFacetFontStyle("BOLD");
excelOpt.setCellFontColor("#00ff00");
excelOpt.setCellFontSize("8");
excelOpt.setStronglyTypedCells(true);
excelOpt.setNumberFormat(new DecimalFormat("#,##0.00"));
excelOpt.setCurrencyFormat((DecimalFormat) DecimalFormat.getCurrencyInstance(new Locale("pt", "BR")));
}
public ExcelOptions getExcelOpt() {
return excelOpt;
}
}
从这张票: https ://github.com/primefaces/primefaces/issues/8961
不支持设置自定义的每个单元格基础,并且超出了此问题的范围。
目前,DataExporter 检测功能仅考虑 ExcelOptions 中的属性“CurrencyFormat”或“DecimalFormat”,如果未定义,则在 faces-config.xml 中。
或者通过在 faces-config.xml faces-config.xml中设置它
<locale-config>
<default-locale>pt_BR</default-locale>
</locale-config>
我的猜测:您的服务器处于不同的语言环境中,这就是 Faces 的默认语言环境,因为您在 faces-config.xml 中缺少明确的语言环境设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.