繁体   English   中英

PrimeFaces 12 DataExporter 十进制数 xls

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM