gpt4 book ai didi

java - Primefaces 3.5 如何使用 dataExporter 导出不可见的 dataTable 行

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:55 30 4
gpt4 key购买 nike

我使用的是 primefaces 3.5,我有一个包含一些行和数据的 p:dataTable,我想将这些数据导出到 xls 文件或其他文件中。

我使用了代码:

<p:commandButton id="exportBtn" icon="ui-icon-extlink" styleClass="statisticsMenuButton" ajax="false" title="#{msg.general_export_as_xls}">
<p:dataExporter type="xls" target="cc-eventListTable-eventList" fileName="statistics"/>
</p:commandButton>

这很好用!

我的问题是,我希望在导出的文件和浏览器数据表中有不同的单元格文本。

例如,在导出的 xls 文件中,我需要在浏览器数据表中设置其他日期格式。否则浏览器单元格中的文本太长了!

我试图为导出的表添加一个额外的列,其中 rendered="false"和 exportable="true"。但不幸的是它不起作用!

有人知道怎么做吗?

最佳答案

将呈现的标签设置为 false 它目前不起作用(它被报告为错误:https://github.com/primefaces-extensions/primefaces-extensions.github.com/issues/209),但你可以像这样使用 css 来实现它:

 <p:column headerText="#{msg['book.coverType']}" style="display:none;">
<h:outputText value="#{book.coverType}"/>
</p:column>

另一种解决方案是在托管 bean 中添加一个后处理方法并从那里添加列。

public void postProcessXLS(对象文档){ log.debug("后期处理Excel");

    HSSFWorkbook workbook = (HSSFWorkbook) document;

addCoverType(workbook,book);

}

你可以这样写方法:

public void addCoverType(HSSFWorkbook workbook, List<Book> books) {

HSSFSheet sheet = workbook.getSheetAt(0);
HSSFCell cell = null;

//row 0 is the header (not automatically added by primefaces)
//add a fifth cell to each row
for (int i = 1; i < sheet.getLastRowNum() + 1; i++) {
sheet.getRow(i).createCell(4);
cell = sheet.getRow(i).getCell(4);
cell.setCellValue(book.get(i - 1).getCoverType());
}
log.debug("cover type added");
}

如果您制作可排序列,顺序也会自动得到遵守:-D

关于java - Primefaces 3.5 如何使用 dataExporter 导出不可见的 dataTable 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21047859/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com