2012-08-05 59 views
1

我使用displaytag的Excel导出ExcelHssfView将表导出为Excel。但是,表backing bean中的每个字段都被写出到导出的表中,而不是仅仅定义的列。我displaytag的配置是:DisplayTag导出导出所有bean字段

export.types=excel 
export.csv=false 
export.pdf=false 
export.excel=true 
export.xml=false 

export.excel.class=org.displaytag.export.excel.ExcelHssfView 
export.excel.decorator=org.displaytag.sample.decorators.HssfTotalWrapper 
export.ExcelView=org.displaytag.export.ExcelView 

而且在jsp

<display:setProperty name="export.excel" value="true" /> 
    <display:setProperty name="export.excel.filename" value="invoiceList.xls" /> 
    <display:setProperty name="export.amount" value="list" /> 
    <display:setProperty name="export.excel.include_header" value="true" /> 
    <display:setProperty name="export.excel.label" value="Download Invoices" /> 
</display:table> 

回答

1

所有<display:column>标签有自己的media属性设置为html,这使他们无法通过Excel导出被引用(期待allexcel媒体),所以displaytag默认传递所有bean列。

<display:column media="html" headerClass="sortable" 
      title="Invoice Amount" class="textDisplayArea" > 
     $ <c:out value="${invoice.invoiceAmount}" /> 
</display:column> 

改为

<display:column headerClass="sortable" 
      title="Invoice Amount" class="textDisplayArea" > 
     $ <c:out value="${invoice.invoiceAmount}" /> 
</display:column> 

和它的工作。