2008-09-22 3 views
15

Ich entwickle eine Anwendung basierend auf Eclipse Rich Client Platform, die stark auf die Verwendung von Tabellen zum Anzeigen und Bearbeiten von Daten beruht. Ich verwende derzeit die SWT-Implementierungen von Table und TableViewer.Eine erweiterte Tabellen-/Tabellenkalkulation SWT-Implementierung

Meine Benutzer beschweren sich immer, dass es "nicht wie in Excel funktioniert". Vor allem kann ich keine einzelne Zelle innerhalb einer Zeile auswählen und alle Zeilen haben die gleiche Höhe. Ich suche nach einer Implementierung, die diese Probleme anspricht.

Kriterien:

  • Free (wie in Rede und Bier - Ich bin Doktorandin und das Programm ist EPL)
  • SWT (die verschiedenen Lösungen für die in SWT einschließlich Swing aren‘ t sehr schön)

Edit:

Bisher habe ich die folgende sug gestions:

Leider bietet ein flüchtiger Blick keine Informationen über die Unterschiede zwischen diesen Implementierungen. Ich werde natürlich nach Lösungen suchen und hier berichten, aber haben Sie einen Rat zu diesem Thema?

Antwort

5

Überprüfen Sie die Nebula Grid Komponente. Es wird immer noch entwickelt, ist also nicht zu 100% reif, scheint aber Ihren Bedürfnissen zu entsprechen.

2

KTable ist ausgereift und sehr anpassbar. Ich habe es verwendet, um eine sehr gute Erfahrung für meine SWT-App zu bieten.

+1

Soweit ich weiß, wird KTable seit Jahren nicht mehr gewartet –

1

K-Tabelle zu JTable ähnlich ist.

Nebula Grid passt gut zum Widget + Viewer-Paradigma. Ich konnte innerhalb weniger Minuten von der normalen SWT-Tabelle zu dieser wechseln.

2

NatTable ist eher eine hohe Leistung und große Volumenkapazität zur Verfügung zu stellen

2

Ich habe die Nebula Grid Komponente wurde unter Verwendung, wie bereits erwähnt, in einem Projekt bei der Arbeit, und im Allgemeinen würde ich zu sagen, habe ich zu denken es funktioniert ziemlich gut. Es gibt einige Leistungsprobleme, und es ist nicht ganz fertig, aber es ist ziemlich einfach, zu irgendeiner Form zu biegen, die Sie brauchen, und macht Tabellenkalkulationstabellen von Daten gut. Sie können Spalten- und Zeilenüberschriften, Spaltengruppen, benutzerdefinierte Zellenrenderer usw. verwenden.

Mein aktuellstes Problem ist es, Zeilenhöhen korrekt zu berechnen, und es sieht nicht so aus, als ob im Moment viel aktive Entwicklung stattfindet, also werde ich versuchen, es selbst zu reparieren.

3

Ich denke, SWT Matrix hat die Funktionen, die Sie suchen.

Es hat ein symmetrisches Design, so dass die Zeilen und Spalten die gleiche Darstellung haben, was bedeutet, dass sie alle ausgewählt, verschoben, versteckt, in der Größe verändert werden können, usw., wie in Excel. Zellnavigation und -auswahl ist auch Excel-like. Und alle Tasten- und Mausbewegungen sind an die gleichen Aktionen gebunden wie bei Spreadshits.

Die Komponente ist eine geschlossene Quelle, aber frei für den privaten und nicht kommerziellen Gebrauch. Dennoch Alpha-Stadium an diesem Punkt, obwohl.

2

ist kostenlos, schnell und leistungsstark.

Da diese Frage zuerst gestellt wurde, ist sie Teil des Eclipse-Nebelprojekts geworden. Die Entwicklung ist noch aktiv.

Die API ist riesig. Eine große Auswahl an Beispielen bietet einfachen Beispielcode für den Einstieg.

Einige nette Features:

  • Kann große Datenmengen verarbeiten, ohne die Leistung
  • Header Row gibt
  • Spanning Zellen
  • Baum Tabelle
  • Zell Redakteure: Text, Combo, Checkbox
  • Standardaktionen zum Kopieren, Exportieren nach Excel und Drucken
  • Validation und visuelle Anzeige des ungültigen Werten
  • Multi-Zellen-Bearbeitungs
  • Zell Dekoratore
  • Zustand der Spaltenschlichte bestehen bleiben, um, Verstecken, Sortieren usw.

Run die Beispiele zu sehen, die Geschwindigkeit und Kraft. Beachten Sie, dass Sie das SWT-Plugin zu Ihrem Klassenpfad hinzufügen müssen. Die Beispiele enthalten es nicht. Hier ein Beispiel:

C:> java -cp C: \ eclipse \ plugins \ org.eclipse.swt.win32.win32.x86_ VERSION .jar; NatTableExamples-0.9.0.jar org.eclipse .nebTool.nattable.examples.NatTableExamples

[Danke an Poster aus früheren Jahren für die Erwähnung von NatTable. Diese Antwort enthält ein Update und weitere Informationen.]