导出到Excel - JSP页面

时间:2011-09-26 13:02:29

标签: jsp html-table export-to-excel

我有一个简单的表格,我想通过点击按钮导出到Excel文件。

我在JavaScript中编写了一个函数,但我不确定会出现什么问题。

function CreateExcelSheet()
{
    var x=myTable.rows
    var xls = new ActiveXObject("Excel.Application")
    xls.visible = true
    xls.Workbooks.Add
    for (i = 0; i < x.length; i++)
    {
        var y = x[i].cells
        for (j = 0; j < y.length; j++)
        {
            xls.Cells( i+1, j+1).Value = y[j].innerText
        }
    }
}

这是JSP页面上的按钮:

</table>
    <input type="button" onclick="CreateExcelSheet()" value="Export"></input>
</form>

它曾经提前工作但现在不能正常工作。还有其他办法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用Apache POI。这是一个例子。

http://www.koders.com/java/fid8624B82721FCB1B8C982E6BA5D17D2C7DD87D09C.aspx?s=HSSF+main+excel#L19

它创建“Workbook”,然后在名为make2的方法中创建一个“Sheet”并添加行和单元格。单元格的值作为Vector传递给方法。

另一个选择是您可以使用displaytag。 display标签有一个功能,允许用户将html表导出到excel文件。

答案 1 :(得分:0)

一个非常简单的替代方法是调用一个servlet,该servlet返回一个从html表标签创建的xls(这适用于您可能想要使用POI的复杂表格的非常简单的表)。从CodeRanch resource开始。

在你的jsp中你有这个:

  

&lt; form method =“post”   行动= “DownloadAsExcel” &GT; &LT;输入   type =“submit”name =“submit”value =“下载   作为Excel“/&gt;&lt; / form&gt;

在你的后端:

public class DownloadAsExcel extends HttpServlet {
    public void doPost(HttpServletRequest req,HttpServletResponse res)
    {
        res.setContentType("application/vnd.ms-excel");
        PrintWriter out=res.getWriter();
        out.println("<table>");
        out.println("<tr bgcolor=lightblue><td>Hello </td><td>James</td></tr>");
        out.close();
    }
}

答案 2 :(得分:0)

<script language="javascript">

function runApp()
{
    var x=myTable.rows;
    var Excel = new ActiveXObject("Excel.Application");
    Excel.visible = true;
    var Book = Excel.Workbooks.Add();
    for (i = 0; i < x.length; i++)
    {
        var y = x[i].cells;
        for (j = 0; j < y.length; j++)
        {
            Book.ActiveSheet.Cells( i+1, j+1).Value = y[j].innerText;
        }
    }
}

</script>