public ColumnValue getColumnFacetValue(FacesContext context, UIColumn column, TableExporter.ColumnType columnType) {
        ColumnValue columnValue = ColumnValue.EMPTY_VALUE;
        if (columnType == TableExporter.ColumnType.HEADER) {
            columnValue = ColumnValue.of(Optional.ofNullable(column.getExportHeaderValue()).orElseGet(column::getHeaderText));
        }
        else if (columnType == TableExporter.ColumnType.FOOTER) {
            columnValue = ColumnValue.of(Optional.ofNullable(column.getExportFooterValue()).orElseGet(column::getFooterText));
        }

        UIComponent facet = column.getFacet(columnType.facet());
        if (LangUtils.isBlank(columnValue.toString()) && FacetUtils.shouldRenderFacet(facet)) {
            columnValue = ColumnValue.of(getComponentValue(context, facet));
        }

        return columnValue;
    }
Gets and caches the list of UIColumns that are exportable="true", visible="true", and rendered="true".
Orders them by displayPriority so they match the UI display of the columns.

@param table the Table with columns to export
@return the List<UIColumn> that are exportable
primefaces/src/main/java/org/primefaces/component/export/TableExporter.java