将JSP表格导出为Excel、Word、PDF

6

请问有没有任何库/ jar文件可以用来将我的表格导出到Excel / PDF / Word中。

请告诉我是否有任何库可以在JSP中创建报表。

7个回答

8

值得一提的是,你可以通过输出HTML表格并将响应类型设置为application/vnd.ms-excel来简单地将表格导出到Excel中,无需任何外部库。

类似于这样:

<%@ page language="java" session="true" %>
<%@ taglib uri="/WEB-INF/tld/response.tld" prefix="res" %>
<res:setHeader name="Content-Type">application/vnd.ms-excel</res:setHeader>
<res:setHeader name="Content-Disposition">attachment; filename=excel-test.xls</res:setHeader>

<table>
    <tr>
        <td>foo</td>
        <td>bar</td>
    </tr>
</table>

:本答案旨在补充此处此处的内容,因为它只涵盖了一个案例(Excel)。


1
请注意,最新版本的Excel不再直接接受此内容。而是使用CSV(或JasperReports,如果您还想获得PDF)。 - BalusC
我已经尝试过了,输出的Excel文件格式是HTML,无法在Excel查看器中打开。我正在寻找一种从JSP导出Excel格式文件的解决方案。有什么建议吗? - Geln Yang
@Geln,你试过使用CSV或JasperReports吗?这是@BalusC上面建议的。 - Jonik
CSV或JasperReports有自己的机制来创建Excel,并需要在新格式(现在是JSP)中重新创建报告。但我不想这样做。现在我需要一种将HTML格式的Excel转换为MS Excel的解决方案。 - Geln Yang

4
我认为JasperReports是你最好的选择,它是一个开源的工具。使用它可以让你只编写一次报告,然后将其导出到所需的多种格式中。它甚至支持直接将HTML流式传输到浏览器中,因此它真的是一个编写一次,随处使用的工具。通过JasperServer它还可以很好地扩展。

2

每种情况都不同。

至于创建报告,我建议使用专门的报告工具,具体来说是Jasper Reports。


1
如果你正在使用JSP,可以尝试使用displaytag库,它可以为你提供导出到所有格式(pdf、excel、csv、xml)。如果需要,你还可以自定义或覆盖导出器。
请查看以下链接:http://displaytag.sourceforge.net/10/export.html

1

我认为itext在报告创建方面仍然更好,更直接。我有一些(不够)使用Jasper Reports的经验,它似乎很笨拙。另一方面,对于开发人员来说,itext非常容易使用,我们用它完成了相当大的报告,没有问题。

你甚至可以从itext创建rtf文件(可由Word读取)。


0

DocmosisJODReports可以从服务器端(JSP、servlets、J2EE等)生成PDF和DOC。Docmosis提供模板中的格式/布局,因此您需要编写的代码更少,甚至可能由非开发人员维护报告的外观和感觉。两者都是免费的。


0
如果您的电子表格非常简单,则将其导出为CSV格式是可以接受的;这很快速且易于编码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接