我在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