2012-08-05 61 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> 

和它的工作。