2009-07-02 17 views
3

Hat jemand eine Java-basierte Bibliothek zum Generieren von Excel-Dokumenten verwendet? Vorzugsweise Unterstützung für 2003?Excel-Dokumente programmgesteuert generieren

+0

Was meinen Sie mit "Dokumente"? Etwas, das wie ein Bericht oder nur eine Tabelle voller Zahlen aussieht? – pjp

+0

Generieren Tabellenkalkulation :) – predhme

Antwort

6

Ich arbeite derzeit mit Apache POI, (http://poi.apache.org/index.html), die sehr umfassend ist. Die Dateiformatversion 2003 ist noch in der Betaversion, scheint aber gut genug zu funktionieren. Ich übe seine Macht nicht sehr aus, nur einfache Lese- und Schreibvorgänge von Excel, aber es scheint zuverlässig zu sein.

+0

Apache scheint eine Bibliothek für alles anzubieten. POI scheint genau das zu bieten, was wir suchen. Danke vielmals! – predhme

+0

Obwohl, wie ich unten sagte, generieren wir bereits CSV-Dateien. Kann POI diese importieren und eine Excel-Datei generieren. Die Nutzer der App generieren bereits täglich Hunderte von Dateien, deren Import zu einer riesigen Zeitverschwendung wird. – predhme

+0

Sie brauchen nichts Besonderes, um CSV in Java zu importieren. Suchen Sie einfach nach einem guten CSV-Parser wie CSVReader http://code.google.com/p/secrets-for-android/source/browse/trunk/src/au/com/bytecode/opencsv/CSVReader.java?spec= svn19 & r = 19 – pjp

6

Wann immer ich das tun muss, frage ich mich, ob eine große HTML-Tabelle ausreichen würde.

die meiste Zeit ist es. Sie können einfach HTML-Tags schreiben und sie als XLS-Datei kennzeichnen. Excel öffnet es richtig

+0

+1 :-) WOW netter Trick – Blauohr

1

JExcelApi

ich es persönlich für einen Bericht verwendet haben, die derzeit in der Produktion ist. Es ist eine ziemlich anständige Bibliothek mit genügend Dokumenten und Open Source.

Es funktioniert sehr gut, aber hat ein paar Fehler, die Sie beachten sollten. Keiner von ihnen sind Deal-Breaker, nur diktieren, wie ein paar Dinge getan werden sollten. Achten Sie darauf, die FAQ zu lesen. Es wird sie erklären und Ihnen sagen, wie Sie sie vermeiden können.

1

Eine formatierte HTML-Tabelle wird korrekt importiert, aber es wäre besser, das Excel-XML-Format von Excel 2003 XML Toolbox für komplexere Anforderungen (mehrere Arbeitsblätter, Formeln usw.) zu verwenden.

+0

Genau wie eine Nebennote Formeln innerhalb einer einfachen HTML-Tabelle gespeichert als .xls funktionieren gut. Wann immer etwas Komplexeres benötigt wird, ist es möglich, eine "Vorlagen" Arbeitsmappe in Excel zu erstellen, als XML zu speichern, dann diese XML in .xls umzubenennen (Excel verarbeitet die Datei einfach) und dann die XML Datei als Vorlage zu verwenden, um fehlende Informationen einzufügen. http://poi.apache.org/ funktioniert auch gut. –

+0

Wie zu einer anderen Antwort erwähnt, generiert der Benutzer täglich Hunderte von Berichten und jede einzelne in Excel zu importieren ist eine riesige Zeitverschwendung. Sie müssen die Datei direkt für den Benutzer generieren. – predhme

+0

Wenn ich sage Bericht, ich meine CSV, PDFs, etc. Die Anforderung ist, anstatt die CSV in Excel importieren müssen, haben Sie die Excel-Datei bereits für sie gemacht. – predhme

2

Wenn Sie keine ausgefallenen Überschriften benötigen, geben Sie einfach CSV aus.

+0

Die Anwendung generiert bereits CSV-Dateien. Mehrere Benutzer generieren täglich Hunderte von Dateien, aus denen später Berichte generiert werden. Eine Datei, die in Excel importiert werden soll, ist in Ordnung, aber Hunderte pro Tag werden zu einem unnötigen zeitaufwendigen Schritt. Sie wollen, dass dieser Teil erledigt wird ... Ich erzeuge die Excel-Datei für sie. – predhme

+0

Obwohl, da wir bereits die CSV-Daten generieren, der "Import" -Prozess programmatisch über Java durchgeführt werden kann? – predhme

+0

Wie genau importieren Sie Hunderte von Dateien in Excel? Erscheinen sie auf verschiedenen Blättern? Sind sie zusammen aggregiert? Verwenden Sie derzeit VBA, um dies zu tun? – pjp

1

Ich mache es mit Jacob als allgemeinem Java und COM Lösung. Bei meiner Lektüre geht Jacob jedoch nicht mit ziemlich guten Mehrfachanrufen (sagen wir Millionen von Anrufen) um und ich musste es ein wenig patchern. Diese Patches wurden von Jacob Maintainer nicht akzeptiert.

Wie auch immer, Jacob ist Open Source (LGPL) und nach dem Patchen habe ich eine Produktionsumgebung, die seit Jahren läuft.

Nach dem Verbinden mit Excel mit COM verwenden Sie Standard Excel API, um Dokumente zu verarbeiten. Zuerst versuchen Sie, wie es mit VBS funktioniert (VBScript Language Reference), dann in Java implementieren.

0

Sie können eine Excel-Datei mit einem VBS erzeugen und dann cal das Skript von Java wie folgt aus:

String script = "your_VBS_Name.vbs" 
String cmd = "D:\\YourPath" + script; 
Runtime.getRuntime().exec(cmd); 

das Skript zu erstellen ist wirklich einfach

Notepad öffnen und folgen Sie dem folgenden Beispiel:

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 

Set objWorkbook = objExcel.Workbooks.Add() 
objWorkbook.SaveAs("D:\yourExcel.xls") 

objExcel.Quit 

und dann speichern sie es als your_VBS_Name.vbs

Th ats es!

Verwandte Themen