【问题标题】:Export HTML table to Excel - using jQuery or Java将 HTML 表格导出到 Excel - 使用 jQuery 或 Java
【发布时间】:2011-03-13 12:22:40
【问题描述】:

我的 JSP 页面上有一个 HTML 表格,我想通过单击按钮将其导出到 Excel。

最好的方法是什么?

(例如,我将如何使用可能是 jQuery 函数来做到这一点?)

任何用于演示目的的代码示例都应该很棒。

【问题讨论】:

    标签: java jquery html excel jsp


    【解决方案1】:

    你可以使用像http://jsoup.org/这样的库来解析表格

    获取数据后,可以将其存储为与 Excel 兼容的格式 (CSV),或者使用 Java Excel 库进行 POI 等,或者使用 JDBC 将数据写入 Excel 表,请参见此示例: Password Protected Excel File

    【讨论】:

      【解决方案2】:

      Excel 可以加载 CSV(逗号分隔值)文件,这些文件基本上只是包含所有内容的文件,所有内容都将进入以逗号分隔的单独 Excel 单元格。

      我不太了解 jQuery 如何处理将信息推送到您将下载的文件中,但似乎已经编写了一个 jQuery 库,至少可以将 html 表转换为 CSV 格式,它在这里: http://www.kunalbabre.com/projects/table2CSV.php

      编辑(2016 年 2 月 29 日): 您可以将上面的 table2csv 实现与 FileSaver.js(它是 HTML5 W3C saveAs() 规范的包装器)结合使用。

      用法最终看起来像:

      var resultFromTable2CSV = $('#table-id').table2CSV({delivery:'value'});
      
      var blob = new Blob([resultFromTable2CSV], {type: "text/csv;charset=utf-8"});
      
      saveAs(blob, 'desiredFileName.csv');
      

      【讨论】:

        【解决方案3】:

        我一直在使用 jQuery 插件table2excel。它工作得很好,不需要服务器端编码。

        使用起来很容易。只需包含 jQuery

        <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
        

        现在包含 table2excel 脚本(记得更改 src 目标以匹配您的目标)

        <script src="dist/jquery.table2excel.min.js"></script>
        

        现在只需调用要导出的表上的脚本。

        $("#yourHtmTable").table2excel({
            exclude: ".excludeThisClass",
            name: "Worksheet Name",
            filename: "SomeFile" //do not include extension
        });
        

        像这样附加到按钮上也很容易:

        $("button").click(function(){
            $("#table2excel").table2excel({
            // exclude CSS class
            exclude: ".noExl",
            name: "Excel Document Name"
            }); 
        });
        

        所有示例均直接取自作者 github 页面和jqueryscript.net

        【讨论】:

          【解决方案4】:

          经过大量研发后,我也花了很多时间将 html 转换为 excel,我发现以下最简单的方法。

          1. 创建隐藏字段并将您的 html 数据传递给您的 servlet 或控制器,例如

            <form id="formexcel" action="" method="post" name="formexcel">
                <input type="hidden" name="exceldata" id="exceldata" value="" />
            </form>
            
          2. 在您的 href 按钮上单击调用以下函数并使用 document.formexcel.exceldata.value 中的 html 数据和 document.formstyle.action 中的 servlet 或控制器

            function exportDivToExcel() {
                document.formexcel.exceldata.value=$('#htmlbody').html();
                $("#lblReportForPrint").html("Procurement operation review report");
                document.formstyle.method='POST';
                document.formstyle.action='${pageContext.servletContext.contextPath}/generateexcel';
                document.formstyle.submit();
            }
            
          3. 现在在您的控制器或 servlet 中编写以下代码

            StringBuilder exceldata = new StringBuilder();
            exceldata.append(request.getParameter("exceldata"));
            ServletOutputStream outputStream = response.getOutputStream();
            response.setContentType("application/vnd.ms-excel");
            response.setCharacterEncoding("UTF-8");
            response.setHeader("Content-Disposition", "attachment;filename=\"exportexcel.xls\"");
            outputStream.write(exceldata.toString().getBytes());
            

          【讨论】:

            【解决方案5】:

            我可以建议你试试http://code.google.com/p/gwt-table-to-excel/,至少是服务器部分。

            【讨论】:

              【解决方案6】:

              而是导出为CSV 格式。 Excel 也支持它。使用例如Apache POI HSSFJExcepAPI 导出到完全有价值的XLS(X) 格式会很慢并且会占用内存。

              导出为 CSV 相对简单。您可以在this answer 中找到完整的代码示例。


              至于使用 JavaScript 导出文件,如果没有 Flash 或服务器端的交互,这是不可能的。在 Flash 中,目前只有 Downloadify 库可以导出为简单的 txt 文件。另外,ExtJs好像有CSV export library,但是我找不到任何可行的demo page。

              【讨论】:

                【解决方案7】:

                我会推荐Apache POI,我们已经使用了很多年,从来没有遇到过任何问题。

                网上有很多例子可以很好地开始,网站上的文档也不错:http://poi.apache.org/spreadsheet/quick-guide.html

                【讨论】:

                  【解决方案8】:

                  您必须在服务器端创建一些东西(如 servlet)来读取 html 并创建 excel 文件并将其返回给用户。

                  您可以使用this library 来帮助您进行转换。

                  【讨论】:

                    【解决方案9】:

                    无法使用 JQuery 导出为 Excel 文件格式。

                    您可以尝试使用 Java。有很多图书馆可以做到这一点。

                    【讨论】:

                    • 不,那不是真的。绝对有可能!
                    猜你喜欢
                    • 2014-06-20
                    • 1970-01-01
                    • 2016-06-30
                    • 1970-01-01
                    • 2013-07-09
                    • 2013-07-11
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多