Speichern JTable als text-Datei
Ich bin speichern .txt-und .doc-Datei mit den Daten aus meiner JTable. In der minute, wenn es spart er legt den text aus, wie Ihr in einer Tabelle, aber aufgrund der unterschiedlichen Längen der Daten, die es nicht passt. Also ich versuche, das Datum zu legen, wie folgt:
Spalte 1: Zeile 1 Spalte 1 Daten
Spalte 2-name: Reihe 1 Spalte 2 Daten
Spalte 3 name: Zeile 1 Spalte 3 Daten
Spalte 4 name: Zeile 1 Spalte 4 Daten
Spalte 1, name: Reihe 2 Spalte 1 Daten
Spalte 2-name: - Zeile 2-Spalte 2 Daten
Spalte 3 name: Zeile 2-Spalte 3 Daten
Spalte 4 name: Zeile 2 Spalte 4 Daten
etc.
Den code habe ich auf die minute:
private void saveResultsActionPerformed(ActionEvent evt) {
int returnVal = fileChooser.showSaveDialog(NewJFrame.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
try {
File file = fileChooser.getSelectedFile();
PrintWriter os = new PrintWriter(file);
os.println("");
for (int col = 0; col < table.getColumnCount(); col++) {
os.print(table.getColumnName(col) + "\t");
}
os.println("");
os.println("");
for (int i = 0; i < table.getRowCount(); i++) {
for (int j = 0; j < table.getColumnCount(); j++) {
os.print(table.getValueAt(i, j).toString() + "\t");
}
os.println("");
}
os.close();
System.out.println("Done!");
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Aber bitte Bedenken Sie, dass jede meiner Tabellen hat unterschiedliche Anzahl von Spalten und Zeilen.
Ich habe versucht das speichern der Spalten und Daten in arrays, und ich habe das Gefühl, das ist der richtige Weg, um das problem, aber ich kann nicht herausfinden, wie Sie zu drucken in der Reihenfolge, die ich erwähnt,
InformationsquelleAutor Patrick Dibb | 2013-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Algorithmus ist ganz einfach:
Keine Möglichkeit: bei jeder iteration, col erhöht wird, und die Spalte name dieser Spalte ist angezeigt.
Sorry falsch verstanden, dein post. Funktioniert perfekt, danke sehr!
InformationsquelleAutor JB Nizet
Einem minimal-Beispiel, das ich gemacht, ist unten angegeben. Ich gibt die folgende form der Ausgabe:
Vorname: Kathy
Nachname: Smith
Sport: Snowboarden
Anzahl der Jahre: 5
Vorname: John
Nachname: Doe
Sport: Rudern
Anzahl der Jahre: 2
InformationsquelleAutor Snorre
Den folgenden code verwendet Teilstrings zu ermöglichen, wenn die Spalten ordentlich in die Textdatei. Es ist ein bisschen chaotisch, aber die erste for-Schleife verarbeitet Spaltenüberschriften und die zweite for-Schleife verarbeitet alle Daten. Wenn Sie möchten, ändern Sie die Größe jedes Stück von Daten ändern 20, um Ihre bevorzugte Größe.
InformationsquelleAutor silence
Zusätzlich zu den Antworten bereits vorgesehen, ich habe implementiert eine Lösung, die speichert den Inhalt in eine text-Datei des Typs .csv (Komma-Getrennte Werte).
Erstens, habe ich eine Methode, die den Inhalt einer JTable in ein zwei-dimensionales array vom Typ Object. Ich wählte den Typ Object, weil Sie verschiedene Spalten in einer JTable speichern kann verschiedene Arten von Daten, z.B. zahlen, Strings etc. Diese Methode befindet sich innerhalb meiner GUI front-end:
Zweitens habe ich eine Klasse angelegt, die verantwortlich für das schreiben der Inhalt der zwei-dimensionalen object-array (JTable Inhalt) auf die Festplatte. Diese ist im folgenden beschrieben:
Den Inhalt der resultierenden SampleData_TEST.csv-Datei werden im folgenden beschrieben:
Wie oben dargestellt, wird das csv-Dateiformat kann in Microsoft Excel geöffnet werden kann vielseitiger sein (je nach Art der Daten) als eine .doc-oder .txt-Datei
InformationsquelleAutor Mark Burleigh