Liferay 列表导出
Posted
技术标签:
【中文标题】Liferay 列表导出【英文标题】:Liferay list export 【发布时间】:2013-08-02 09:14:24 【问题描述】:我在 liferay portlet 上显示我的自定义对象列表。 现在我的问题是我想为用户提供导出功能。 列表下方将显示导出链接。 当用户单击该按钮时,它将显示的列表下载为 excel 文件。
我在生成显示列表的同时生成 excel 文件。所以,现在我的问题是导出链接应该如何表现。
我的导出按钮代码。
<portlet:actionURL name="exportURL" var="exportURL"></portlet:actionURL>
<p><a href="<%=exportURL %>">← Export</a></p>
我正在考虑的一种方法是在生成 excel 文件后,我可以将其上传到 Liferay 的文档库中,然后在 portlet 上提供下载链接作为导出链接,这是一个好方法吗?
【问题讨论】:
您应该在用户单击该链接时动态生成 excel 文件。手动生成并上传 - 在现实生活中不起作用,因为您很快就会发现自己总是在上传更改。 我不是手动操作我有实用程序类,现在可以生成它唯一的事情是点击这个按钮我应该能够调用将生成 Excel 文件的那个,它也应该被下载。 ***.com/questions/8654568/… 【参考方案1】:您想使用<portlet:resourceURL>
,而不是使用<portlet:actionURL>
。这会触发 portlet 的资源阶段,您可以在其中提供除 html sn-ps 之外的其他内容类型,例如Excel 类型。
我的印象是您已经掌握了 excel 导出本身,只需要知道如何从 portlet UI 导出,对吗?在serveResource
中,您将获得ResourceRequest
和ResourceResponse
对象,并且可以设置响应的Mimetype(及其OutputStream
)
【讨论】:
【参考方案2】:您应该仅在用户单击导出链接后生成文件,因为 adarshr 已在您的问题的评论中写道。如果每次在portlet中显示列表时生成文件并上传到下载中心,那将是对服务器资源的无用浪费。
【讨论】:
【参考方案3】:您可以使用 poi-2.5.1.jar 在 java 中生成 excel 文件。
利用serveResource方法。
下面的代码sn-p,你可以使用。\
Workbook workBook = new HSSFWorkbook();
Sheet sheet = workBook.createSheet("new sheet");
Row row = sheet.createRow((short)0);
Cell cell = row.createCell(0);
//set row,cell value as per your custom entity
resourceResponse.setContentType("application/vnd.ms-excel");
OutputStream out = resourceResponse.getPortletOutputStream();
workBook.write(out);
HTH, 问候
【讨论】:
感谢 Pankaj 我知道了。以上是关于Liferay 列表导出的主要内容,如果未能解决你的问题,请参考以下文章