ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
17269
17269
EMPFEHLEN
-
Hallo Zusammen,
ich muss ein Programm in Java schreiben, das mir es ermöglicht die Daten aus eine Excel-Datei ausliest und sie in eine JTable ausgibt.
bin für jede Hilfe dankbar
Gruss
-
Aus CSV in eine JTable wäre (für Fortgeschrittene/Profis) recht einfach, aus einer Excel-Tabelle könnte mehr als fummelig werden.
-
bin aber kein Profi! kannst Du mir dann helfen!
PS: bis jetzt habe keine Tabelle in Java estellt, es sollte so ausehen:
2 Spalten und unendliche Zeilen.
Danke im voraus
-
Das habe ich in 10min hingezimmert. Ob Du dabei aber viel lernst, wage ich zu bezweifeln...
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
/* * Created on 21.03.2005 */ import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import java.io.*; public class CSVTest extends JFrame { private class MeinWindowListener extends WindowAdapter { public void windowClosing(WindowEvent arg0) { System.exit(0); } } private String[] columnNamen = { "Spalte 1", "Spalte 2" }; private DefaultTableModel tableModel; private JButton button; private JComponent contentPane = (JComponent) getContentPane(); CSVTest() { super("CSV Test"); setSize(800, 600); initLayout(); setLocationRelativeTo(null); addWindowListener(new MeinWindowListener()); setVisible(true); setResizable(true); } void initLayout() { contentPane.setLayout(new BorderLayout()); tableModel = new DefaultTableModel(null, columnNamen); JTable tableZahlen = new JTable(tableModel); tableZahlen.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane scrollPane = new JScrollPane(tableZahlen); scrollPane.setPreferredSize(new Dimension(300, 300)); JPanel jpTable = new JPanel(); jpTable.add("Center", scrollPane); contentPane.add("West", jpTable); button = new JButton("Einlesen"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { readFile(); } }); JPanel jpButton = new JPanel(); jpButton.add(button); contentPane.add("South", jpButton); } /** * */ protected void readFile() { try{ BufferedReader reader = new BufferedReader(new FileReader("C:\\Mappe1.csv")); String strLine; while ( (strLine = reader.readLine()) != null ) { String[] items = strLine.split(";"); tableModel.addRow(items); } tableModel.fireTableDataChanged(); } catch(FileNotFoundException e) {} catch(IOException e) {} } public static void main(String[] args) { CSVTest frame = new CSVTest(); frame.setLocation(150, 90); frame.setSize(600, 500); frame.setResizable(true); frame.setVisible(true); } }
Mappe1.csv:
1;Hund
2;Katze
3;Maus
4;Tiger
5;Panther
6;Giraffe
7;Jaguar
8;Esel
9;Pferd
-
21.03.05 13:45 #5
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Schau mal hier:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
/** * */ package de.tutorials; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Arrays; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingUtilities; import javax.swing.filechooser.FileFilter; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; /** * @author Administrator * */ public class CSVJTableExample extends JFrame { private JTable table; private JButton btnAction; private JFileChooser fileChooser = new JFileChooser() { { setFileFilter(new FileFilter() { @Override public boolean accept(File f) { return f.getName().toLowerCase().endsWith("csv"); } @Override public String getDescription() { return "CSV Datei (Comma Seperated Values)"; } }); } }; public CSVJTableExample() { super("CSVJTableExample"); setDefaultCloseOperation(EXIT_ON_CLOSE); btnAction = new JButton("Dateiauswahl"); btnAction.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (!(fileChooser.showOpenDialog(CSVJTableExample.this) == JFileChooser.APPROVE_OPTION)) return; final File file = fileChooser.getSelectedFile(); if (file == null) return; SwingUtilities.invokeLater(new Runnable() { public void run() { TableModel model = parseCSVAndCreateTableModel(file); table.setModel(model); } }); } }); table = new JTable(); add(new JScrollPane(table), BorderLayout.CENTER); add(btnAction, BorderLayout.SOUTH); pack(); setVisible(true); } private TableModel parseCSVAndCreateTableModel(File file) { Vector v = new Vector(); BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); // Überschriften stehen in erster Zeile String[] rowItems = br.readLine().split(";"); Vector header = new Vector(Arrays.asList(rowItems)); while (br.ready()) { rowItems = br.readLine().split(";"); v.add(new Vector(Arrays.asList(rowItems))); } DefaultTableModel model = new DefaultTableModel(v, header); return model; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } /** * @param args */ public static void main(String[] args) { new CSVJTableExample(); } }
Gruß Tom
-
Danke das hilft viel! merci
-
Hallo zusammen,
ich habe jetzt die Daten aus einer CSV-Datei ausgelesen und wierder in eine CVS-Datei gespreichert(vorerst), diese Daten möchte ich gern sortieren z.B. nach Nachnamen, und die Werte, die zu diesem Nachnamen gehören summieren. Anschliessend das Ergebnis in eine JTable ausgebe.
für jede Hilfe bin sehr dankbar.
-
Moin,
da wirst Du um ein eigenes TableModel nicht herumkommen.
-
Danke aber deine Antwort hilft mir nicht! bin nur ein Anfänger und häge zurzeit an einer Aufgabe!
trotzdem Danke.
-
Hallo user Profi,
ich habe mir jetzt die Daten soweit aus der CSV-Datei geholt und in eine JTable dargestellt. Die Daten sind auch sortiert(string).Nun möchte ich z.b. Spalten- und/oder Zeilenweise eine Markierung machen um die Daten mit Strg und C zu kopieren und manuell in eine ander Datei einfüge.
Die Markierung kann bis jetzt machen mit:
table.setSelectionForeground(Color.YELLOW);
table.setSelectionBackground(Color.RED);
table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
allerdings wenn es eine grosse Datei ist ist dann umstandiger. Deshalb micht dann z.B. mit einem Doppelklick auf die Spaltebeschriftung die ganze Spalte markieren.
für jede Hilfe bin sehr dankbar. Falls Du den Code brauchst kann ich Dir schicken.
Danke vielmals
-
ich hab da auch so meine probleme obwohl ich den code hier grossteils übernommen habe, ich will die strings in eine liste stopfen,
derzeit schreib ich sie noch debugmässig raus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
try{ BufferedReader reader = new BufferedReader(new FileReader("C:\\eclipse\\workspace\\FlightBooking\\Mappe1.csv")); System.out.println("hallo"); String strLine; String[] items; while ( reader.ready()) { items = reader.readLine().split(";"); System.out.println(items); } } catch(FileNotFoundException e) {} catch(IOException e) {}
und rauskommen tut:
hallo
[Ljava.lang.String;@1cd2e5f
richtiger inhalt von mappe1: bla;lol;rofl;test
-
Hi !
String[] items;
Items ist ein Array und somit über einen Index auszulesen.
Bsp: System.out.println(items[0]);
Gruß Stefan:-) möp
-
Hallo!
Ich möchte nochmal auf die Frage von maxhd2 zurückkommen.
Wie kann ich die Strings in eine Liste stecken, wenn ich ein eigenes TableModel habe
und NICHT das DefaultTableModel benutze?
Gruß
-
Einfach so in ein Array oder eine Liste legen, dass sie in den TableModel-Interfacemethoden ausgelesen werden können.
-
Ok, habe es jetzt mit einer ArrayList gelöst!
Ähnliche Themen
-
Formular-Daten aus HTML-Dokument in Excel- oder XML-Datei exportieren
Von ShadowDomE im Forum Coders TalkAntworten: 3Letzter Beitrag: 21.01.10, 08:14 -
Objekte aus einer Datei in eine JTable schreiben
Von MCXVEG im Forum JavaAntworten: 12Letzter Beitrag: 13.05.08, 12:16 -
eine excel datei mit java auslesen
Von rene2407 im Forum JavaAntworten: 14Letzter Beitrag: 06.04.06, 13:23 -
Daten aus einem HTML Kontaktformular in eine Acess DB oder Excel importieren
Von Shiro-san im Forum Relationale DatenbanksystemeAntworten: 8Letzter Beitrag: 18.07.05, 13:50 -
Wie erstelle ich eine css datei, oder kann mir einer eine css Datei erstellen
Von Jack iZ BaQ im Forum CSSAntworten: 2Letzter Beitrag: 01.02.04, 22:11





Zitieren

Login





