使用Primefaces DataExporter

时间:2017-11-20 12:30:28

标签: jsf primefaces

我在JSF xhtml文件中有一个p:textEditor:

                        <p:textEditor id="specQuestions" value="#{row[column.property]}"   >
                            <f:facet name="toolbar">
                                <span class="ql-formats">
                                    <button class="ql-bold"></button>
                                    <button class="ql-italic"></button>
                                    <button class="ql-underline"></button>
                                </span>
                            </f:facet>
                        </p:textEditor>

正如所料,输入此字段的文本会以html标记存储 - <p>, <em>, <u>等。

在同一个应用程序的另一个xhtml文件中,我有一个p:dataTable,其单元格显示来自相同p:textEditor实例的内容。

<p:dataTable id="xlsTable" var="row" rendered="false"
                             rowIndexVar="rowVar" value="#{csvExportController.csvRows}" 
                             widgetVar="reportsTable"
                             >
                    <p:columns value="#{csvExportController.csvColumns}" var="column" columnIndexVar="colIndex"  >
                        <f:facet name="header">
                            <h:outputText value="#{column.header}" />
                        </f:facet>
                        <h:outputText value="#{row[column.property]}" escape="false"   />
                    </p:columns>
                </p:dataTable>

不会渲染dataTable(渲染=&#34; false&#34;)。相反,它的目的是通过p:dataExporter导出到xls文件,如:

<p:dataExporter type="xls" target="xlsTable" fileName="#{reviewTableController.spreadsheetTitle}" pageOnly="false" encoding="utf-8" />

正如可能预料到的那样,但是不想要,当数据导出到xls时,所有html标签都在xls单元格中呈现为标签(<em>等)。我想要的是<em>标签中的文字在xls文件中呈现为斜体,<u>为带下划线的文本等。

我猜我应该自定义dataExporter(?) 使用自定义的dataExporter,您似乎可以设置单元格样式。但是,使这种情况更难的是,给定单元格中的文本可能会有不同的样式。它不像给定单元格中的所有文本都是单一样式。

看起来像Apache poi - org.apache.poi.hssf.usermodel.HSSFCell,和 - org.apache.poi.hssf.usermodel.HSSFCellStyle; - 没有比xls单元格(?)

更精细的粒度

有没有办法将带有一些简单html样式标签的文本转换为xls文件中的样式文本(不是样式单元格,而是样式文本),无论是作为先前进程还是使用p:dataExporter进行处理? / p>

JSF 2.2,Primefaces 6.1.4,Java EE 7

0 个答案:

没有答案