Как предотвратить convertNumber, если dataTable экспортируется через dataExporter - PullRequest
0 голосов
/ 04 июля 2019

Если я экспортирую свою dataTable в Excel с помощью dataExporter, числа, содержащие пробелы в нем, и я не могу преобразовать их в Excel в числа и суммировать их.

Я пытался с помощью функции exportFunction, но я не былв состоянии заставить это работать.Но я думаю, что это не имеет значения из-за функции convertNumber.

    <p:column filterBy="#{item.netPrice}" filterStyle="width: 65px;" exportFunction="#{controller.exportNumber}" headerText="#{bundle.ListFormItemSumTitle_netPrice}" filterMatchMode="startsWith" sortBy="#{item.netPrice}" visible="#{controller.isColumnVisible[1]}">
        <h:outputText value="#{item.netPrice}">
            <f:convertNumber />
        </h:outputText>
    </p:column>

Метод контроллера:

    public String exportNumber(UIColumn column) {
        String value = "";
        for(UIComponent child: column.getChildren()) {
            if(child instanceof ValueHolder) {
                value = ComponentUtils.getValueToRender(FacesContext.getCurrentInstance(), child);
            }
        }

        return value.replaceAll(" ", "");
}

Этот метод даже не вызывался при экспорте, к сожалению ...: (*

Это один из столбцов.

<p:column filterBy="#{item.netPrice}" filterStyle="width: 65px;" headerText="#{bundle.ListForm_netPrice}" filterMatchMode="startsWith" sortBy="#{item.netPrice}" visible="#{controller.isColumnVisible[1]}">
        <h:outputText value="#{item.netPrice}">
            <f:convertNumber />
        </h:outputText>
</p:column>

Ожидаемый результат: если я экспортирую таблицу данных, числа не содержат пробелов. Если я просматриваю таблицу данных в пользовательском интерфейсе, то пробелы отображаются в качестве разделителя тысяч.

Версия простых чисел:

<dependency> 
<groupId>org.primefaces</groupId> 
<artifactId>primefaces</artifactId> 
<version>6.2</version> 
<type>jar</type> 
</dependency> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...