2010-07-08 4 views
9

Ich habe eine HTML-Tabelle auf meiner JSP-Seite, die ich nach einem Klick auf Excel exportiert werden soll.
Was wäre der beste Weg, dies zu tun?
(Zum Beispiel, wie würde ich dies verwenden, könnte eine jQuery-Funktion sein.)HTML-Tabelle in Excel exportieren - mit jQuery oder Java

Alle Codebeispiele für die Demo. Zwecke sollten großartig sein.

Danke,
Pritish.

Antwort

0

Exportieren in Excel-Dateiformat mit JQuery ist unmöglich.

Sie können mit Java versuchen. Dafür gibt es viele Bibliotheken.

+0

Nein, das sind nicht wahr. Es ist absolut möglich! –

0

Sie müssten etwas auf der Serverseite (wie ein Servlet) erstellen, um den HTML-Code zu lesen und die Excel-Datei zu erstellen und sie dem Benutzer zurück zu liefern.

Sie könnten this library verwenden, um Ihnen bei der Umwandlung zu helfen.

4

eher zu CSV-Format exportieren. Es wird auch von Excel unterstützt. Das Exportieren in ein vollwertiges XLS (X) -Format unter Verwendung von zum Beispiel Apache POI HSSF oder JExcepAPI ist langsam und Speicherbeherrschung.

Das Exportieren nach CSV ist relativ einfach. Ein vollständiges Codebeispiel finden Sie in this answer.


Zum Exportieren in Dateien mit JavaScript ist dies ohne Interaktion von Flash oder der Server-Seite nicht möglich. In Flash gibt es bisher nur die Downloadify Bibliothek, die in einfache txt-Dateien exportieren kann. Außerdem scheint ExtJs eine CSV export library zu haben, aber ich finde keine brauchbare Demoseite.

1

Excel kann CSV-Dateien (durch Kommas getrennte Werte) laden, bei denen es sich im Grunde genommen nur um Dateien handelt, die in separate, durch Komma getrennte Excel-Zellen eingefügt werden.

Ich weiß nicht genug darüber, wie jQuery Informationen in eine Datei pushen kann, die Sie herunterladen würden, aber es scheint eine jQuery-Bibliothek geschrieben worden zu sein, die HTML-Tabellen zumindest in CSV-Format umwandelt, und es ist hier: http://www.kunalbabre.com/projects/table2CSV.php

Edit (29. Februar 2016): Sie die table2csv Implementierung oben in Verbindung mit FileSaver.js verwenden können (das ist ein Wrapper für die HTML5 W3C saveAs() spec).

wird die Nutzung am Ende so etwas wie die Suche:

var resultFromTable2CSV = $('#table-id').table2CSV({delivery:'value'}); 

var blob = new Blob([resultFromTable2CSV], {type: "text/csv;charset=utf-8"}); 

saveAs(blob, 'desiredFileName.csv'); 
+0

Dies erstellt keine CSV-Datei zum Herunterladen. Dies zeigt nur den generierten CSV-Inhalt in einem Textfeld in einem Popup, das der Endbenutzer selbst kopieren muss. Dies entspricht nicht wirklich den Anforderungen, die ich vermute;) – BalusC

+0

Antwort wurde aktualisiert, um 6 Jahre später nützlicher zu sein. – dmott

3

können Sie die Tabelle mit Bibliothek wie http://jsoup.org/

nachdem Sie die Daten erhalten analysieren, können Sie speichern sie in Excel-kompatibelem Format (CSV) oder unter Verwendung von Java, dass Excel-Bibliothek für wie POI oder JDBC unter Verwendung von Daten in Excel-Tabelle zu schreiben, finden Sie in dieses Beispiel: Password Protected Excel File

0

kann ich Sie vorschlagenversuchen 210, zumindest der Server Teil.

1

Ich verbrachte auch viel Zeit, um HTML nach Excel zu konvertieren, nachdem viele von R & D ich folgenden einfachsten Weg gefunden habe.

  1. verstecktes Feld erstellen und in Ihren HTML-Daten an Ihrem Servlet oder Controller für zB passieren

    <form id="formexcel" action="" method="post" name="formexcel"> 
        <input type="hidden" name="exceldata" id="exceldata" value="" /> 
    </form> 
    
  2. auf dem Button href Klicke Anruffunktion nach und in dem Dokument mit Ihren HTML-Daten übergeben. formexcel.exceldata.value und Servlets oder Controller in document.formstyle.action

    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. Jetzt in Ihrem Controller oder Servlet schreiben folgende

    Code
    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()); 
    
0

Ich habe table2excel die jQuery-Plugin im Einsatz. Es funktioniert sehr gut und es wird keine serverseitige Codierung benötigt.

Die Verwendung ist einfach. Fügen Sie einfach jQuery

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

nun das table2excel Skript enthalten (Denken Sie daran, das src Ziel zu ändern Ihnen zu passen)

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

einfach jetzt auf dem Tisch das Skript rufen Sie exportet wollen.

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

Es ist auch einfach, wie so eine Taste befestigen:

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

Alle Beispiele direkt aus den Autoren Github Seite genommen und von jqueryscript.net

Verwandte Themen