gpt4 book ai didi

java - 多列的 PrimeFaces DataExporter 到 XLS 无法正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 00:57:05 25 4
gpt4 key购买 nike

我有一个 <p:dataTable> :

<p:dataTable  id="contracttblenone"  var="contract" value="#{reportController.listcontract}" rowKey="#{contract.id}" paginator="true" rows="10"  paginatorPosition="bottom"           paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"         rowsPerPageTemplate="5,10,15" resizableColumns="true" emptyMessage="">
<p:column>
<f:facet name="header">
<h:outputText value="№"/>
</f:facet>
<h:outputText value="#{contract.id}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Firma Ad?"/>
</f:facet>
<h:outputText value="#{contract.name}"/>
</p:column>
<p:columns width="60" value="#{contract.liscolumn}" var="column">
<f:facet name="header">
<h:outputText value=" #{column.header} "/>
</f:facet>
<h:outputText value=" #{column.property} " />
</p:columns>
<f:facet name="header">
<h:outputText value="Sirket Sozlesmeler"/>
</f:facet>

</p:dataTable>

这是我的命令链接:

 <h:commandLink>  
<p:graphicImage value="../img/xls.png" />
<p:dataExporter type="xls" target=":formreport:contracttblenone"
fileName="report" />
</h:commandLink>

这是数据表的样子

enter image description here

但导出的 xls 是不同的。它正在修改所有 rowas,因为这里的最后一个是来自 excel 的快照:

x

最佳答案

好吧,我在使用 primefaces 的 exporttoExcel 函数分析时也遇到了一些问题。我在 stackoverflow 和 primefacesForums 上搜索了很多,但才知道这是一个与 primefaces 相关的版本问题。顺便说一句,我已经制作了自己的函数,它是现在可以完美运行,也可以根据导出为其他格式进行修改。

<p:commandLink  id="back" value="Export to Excel" action="#{agendaBean.exportToExl}" immediate="true" 
ajax="false" style="color: #086A87;" ></p:commandLink>

单击链接后,将在具有以下内容的 bean 中调用 exportToExl 方法。

public String exportToExl() {

ExportToExcel expExlBean = new ExportToExcel();

List<String> columnNames = new ArrayList<String>();
columnNames.add("Agenda ID");
columnNames.add("Matter");
columnNames.add("Item");
columnNames.add("OrderNo");
columnNames.add("AccessPrivilegeString");

columnNames.add("DocumentNameDisplay");
columnNames.add("DocumentFolderPath");

List<String> columnType = new ArrayList<String>();
columnType.add(FrameWorkConstants.DO_NOT_FORMAT);
columnType.add(FrameWorkConstants.DO_NOT_FORMAT);
columnType.add(FrameWorkConstants.DO_NOT_FORMAT);
columnType.add(FrameWorkConstants.DO_NOT_FORMAT);
columnType.add(FrameWorkConstants.DO_NOT_FORMAT);
columnType.add(FrameWorkConstants.DO_NOT_FORMAT);
columnType.add(FrameWorkConstants.DO_NOT_FORMAT);

String companyFolderPath = new AgendaIMPL()
.getCompanyFolderPath(meetingID);
if (agendaList != null) {
for (int i = 0; i < agendaList.size(); i++) {
agendaList.get(i).setDocumentFolderPath(companyFolderPath);
}
}
List expList = agendaList;

if (expList == null || expList.isEmpty()) {
ResourceBundle rb = ResourceBundle
.getBundle("resources.error1");
if (rb != null) {
Utils.addMessage(rb.getString("34").trim(),
FacesMessage.SEVERITY_ERROR);
return null;
}
}

String strVOName = "com.ultimatix.boardAdmin.vo.AgendaVO";

FacesContext fc = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) fc
.getExternalContext().getResponse();

String flagStart = FrameWorkConstants.SINGLE;
expExlBean.exportToExcel(columnNames, columnType, response,
expList, strVOName, flagStart);

fc.responseComplete();
return null;
}

此处 AgendaList 是您在数据表中用于填充行的列表。您要在 Excel 工作表中打印该列表。

如果您有任何更关心的问题,请告诉我。

关于java - 多列的 PrimeFaces DataExporter 到 XLS 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18078522/

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