Экспорт в Excel - страница JSP - PullRequest
       24

Экспорт в Excel - страница JSP

0 голосов
/ 26 сентября 2011

У меня есть простая таблица, которую я хотел бы экспортировать в файл 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 ]

1 голос
/ 26 сентября 2011

Вы можете использовать Apache POI .Это один из примеров.

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

Он создает «Рабочую книгу», затем внутри метода make2 создает «Лист» и добавляет строки и ячейки.Значения ячеек передаются методу в векторе.

Другой вариант заключается в том, что вы можете использовать displaytag .Тег отображения имеет функцию, позволяющую пользователю экспортировать HTML-таблицу в файл Excel.

0 голосов
/ 12 октября 2011
<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>
0 голосов
/ 27 сентября 2011

Действительно простой альтернативой является вызов сервлета, который возвращает xls, созданный из тегов таблиц html (это подходит для действительно простых таблиц, для сложных таблиц, которые вы можете использовать с помощью POI). Из этого ресурса CodeRanch .

в вашем JSP у вас есть это:

в вашем бэкэнде:

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();
    }
}
...