2013-03-11 65 views
2

作爲主題標題,當我嘗試將我的數據導出到excel文件,然後允許客戶端用戶下載它。我的代碼拋出不支持我的類型application/vnd.ms-excel。p:fileDownload primefaces 3.5和Liferay 6.1 ga1,不支持我的類型

用p:dataExporter嘗試,失敗。

嘗試使用p:fileDownload,失敗。

我有一些搜索,並認識到primefaces文件下載和數據導出器不支持liferay門戶,也許它仍然是不可能的,直到版本6.1 ga1?

請問有沒有其他的解決辦法?

ps:我從primefaces演示頁複製代碼。

+0

我已經擁有的iText和Apache的POI LIB – user1487380 2013-03-11 10:28:50

+0

這是primefaces的錯誤。如果您想解決問題,請爲primefaces問題[1109](https://code.google.com/p/primefaces/issues/detail?id=1109)投票。 – stiemannkj1 2014-03-07 15:57:24

回答

2

它仍然有可能,以下解決方法。

[Public StreamData getFile() { 
    // 1. initialize the fileInputStream 
    // 2. get Liferay's ServletResponse 
    // 3. write the file into the outputStream 
    // 4. return null to this method 
}][1] 

更多細節示例代碼,請如果您正在使用POI生成Excel的參考 http://kianworknotes.blogspot.com/2013/03/primefaces-filedownload-in-liferay.html#more

。 在步驟3中,只寫了以下

workbook.write(outputstream) 
+1

我剛剛將liferay-faces-1513-patch-SNAPSHOT.jar附加到[FACES-1513](https://issues.liferay.com/browse/FACES-1513)。此修補程序應該可以在portlet中使用p:fileDownload和p:dataExporter,而無需在自己的代碼中執行任何portlet特定的編碼。 但有兩個限制: p:fileDownload - 由於Portlet環境中的Cookie問題,PrimeFaces.monitorDownload(start,stop)不會調用「stop」函數。 p:dataExporter - 無法獲得type =「xml」的工作,但「csv」,「pdf」和「xls」正常工作。 – 2014-06-19 19:21:51