Excel-Datei einlesen

Status
Nicht offen für weitere Antworten.

TheDestroyer

Aktives Mitglied
Hi,

habe folgende Aufgabe:

In einem kleinen Unternehmen sind Kundendaten in Excel gespeichert. Da das Unternehmen seine Daten aber gerne in einer XML-Datenbank speichern will, müssen die Daten aus Excel mithilfe eines Programms in XML konvertiert werden. Bei XML handelt es sich um einen Standard zur Erstellung von strukturierten Dokumenten. Aus Excel wurde bereits eine CSV-Datei erstellt. In ihr befinden sich die Kundendaten, die mit Semikolon getrennt sind (siehe benötigte Dateien). Eurer Programm soll diese nun, so wie in der Beispieldatei, konvertieren können. Der Tabellenkopf der Daten aus Excel sieht so aus: Kundennummer;Nachname;Vorname;Telefon;Email.

Entwickelt eine GUI, die die CSV-Datei auswählen und die XML-Datei in einem angegebenden Ort speichern kann.
Entwickelt eine oder mehrere Funktionen zur Konvertierung von CSV in XML.
Erstellt eine Javadoc über eure Lösung.



Wie mache ich das denn jetzt. Hab sowas noch ne gemacht. Soll jetzt also die Daten einlesen, aber wie. Kann mir vielleicht jemand von euch helfen. Vielleicht hat es aja auch schonmal gmeahct und kann mir nen Tip geben. Danke!!

Die Excel Datei sieht so aus:


1 Meier Robert 5456 robert.meier@telefirma.de
2 Kurz Anika 12321 anika.kurz@sdh.de
3 Otto Alexander 4575 ottolein@gmx.de
4 Kaiser Karl 2345 karl_kaiser@autohaus-md.de
5 Schwarze Nicole 7534 nicole@schwarze.de
6 Bauer Paula 64534 paulaaa@web.de
 

TheDestroyer

Aktives Mitglied
Hab das jetz mal so gemacht:

Code:
package Tut3;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.List;
import java.util.prefs.*;
import java.io.*;

import javax.swing.*;

public class PrefDemoFrame extends JFrame {
	JFileChooser fileC = new JFileChooser();
	Preferences node = Preferences.userNodeForPackage(this.getClass());
	
	public PrefDemoFrame(){
		this.setTitle("Preferences Demo");
		JMenuBar menubar = new JMenuBar();
		this.setJMenuBar (menubar);
		JMenu func = new JMenu ("Einstellungen");
		menubar.add(func);
		JMenuItem importMenuItem = new JMenuItem("Einstellungen importieren");
		importMenuItem.addActionListener(new ImportActionListener());
		JMenuItem exportMenuItem = new JMenuItem("Einstellungen exportieren");
		exportMenuItem.addActionListener(new ExportActionListener());
		func.add(importMenuItem);
		func.add(exportMenuItem);
		JLabel label = new JLabel ("Preferences Demo");
		label.setHorizontalAlignment(SwingConstants.CENTER);
		this.getContentPane().add(label, BorderLayout.CENTER);
		adjustByPreferences();
			
	}
	
	private void adjustByPreferences(){
		int left	= node.getInt("left",0);
		int top		= node.getInt("top",0);
		int width	= node.getInt("width",400);
		int height	= node.getInt("height",300);
		this.setBounds(left, top, width, height);
		
	}
	
	private void saveSettings(){
		node.putInt("left",		this.getX());
		node.putInt("top",		this.getY());
		node.putInt("width",	this.getWidth());
		node.putInt("height",	this.getHeight());
		try{
			node.flush();
		   }catch (Exception e){}
	}
	
	private static void dateiInhaltLesen() { 
	      BufferedReader csv_file = null; 
	       
	      try { 
	         String csv; 
	            csv_file = new BufferedReader(new FileReader("C:/kundendaten.csv")); 
	            while ((csv = csv_file.readLine()) != null) 
	            { 
	            
	            List daten = new ArrayList(); 
	            int maxFelder = 0; 
	            String[] zeile = csv.split(";"); 
	            if (zeile.length > maxFelder){ 
	            maxFelder = zeile.length; 
	            } 
	            daten.add(zeile); 
	            
	            } 
	                  
	      } catch (IOException e) { 
	          System.out.println("Fehler beim einlesen der Datei."); 
	          
	       }
		}
	
	protected void processWindowEvent(WindowEvent e){
		super.processWindowEvent (e);
		if (e.getID()== WindowEvent.WINDOW_CLOSING){
			saveSettings();
			System.exit(0);
		}
	}
private class ImportActionListener implements ActionListener{
		
		public void actionPerformed(ActionEvent e){
			if (fileC.showOpenDialog(PrefDemoFrame.this) == fileC.APPROVE_OPTION){
				try{
					InputStream in = new FileInputStream(fileC.getSelectedFile());
					node .importPreferences(in);
					in.close();
					dateiInhaltLesen();
				} catch (Exception exc){
					exc.printStackTrace();
				}
			}
		}
	}
	
	private class ExportActionListener implements ActionListener {

		public void actionPerformed(ActionEvent e) {
			if (fileC.showSaveDialog(PrefDemoFrame.this) == fileC.APPROVE_OPTION){
				try {
					saveSettings();
					OutputStream out = new FileOutputStream(fileC.getSelectedFile());
					node.exportNode(out);
					out.close();
					
				} catch (Exception exc){
					exc.printStackTrace();
				}
			}
		}
	}
	
	
	
	
}

code zum starten:
Code:
package Tut3;

public class PreferencesDemo {
	public static void main(String[]args){
		PrefDemoFrame frame = new PrefDemoFrame();
		frame.setVisible(true);
	}
}
private void adjustByPreferences() , sowie saveSettings dient dabei eerstmal nur u Testzwecken. Doch wie kann ich dateiInhaltLesen jetzt richtig einfügen, sodass das Prog auch mit den eingelesenen Daten arbeitet. Er muss mir doch anschliessend meine eingelesenen Daten erstml speichern, oder und dann halt so bearbeiten dassie so ausgegebn werden:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE preferences (View Source for full doctype...)>
- <preferences EXTERNAL_XML_VERSION="1.0">
- <root type="user">
<map />
- <node name="Tut3">
- <map>
<entry key="left" value="693" />
<entry key="top" value="102" />
<entry key="width" value="400" />
<entry key="height" value="300" />
</map>
</node>
</root>
</preferences>

MAcht das min Java jetzt automatisch oder muss ich etwas beachten. Muss doch sicherlich irgendie die eingelesen Daten irgendwie splitten und dann halt wieder so ausgeben wie oben zu sehen ist.

Kann mir jemand nen Tip geben?
THX!!!!
 
G

Guest

Gast
genau wie du geschrieben hast, zuerst spitten (es gibt eine splitt methode) und wieder zusammenbauen. da kannst du jenachdem aber auch mal in XML reinschauen. Mit nem passend definierten Schema geht das dann automatisch. Wobei ich behaupten würde, "zu Fuss machen" sollte für deine Zwecke erstmal ausreichen und auch etwas schneller zu implemetieren sein.
 

TheDestroyer

Aktives Mitglied
Hab das jetzt mal so gemacht:
Code:
package Tut3;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import java.util.prefs.*;
import java.io.*;

import javax.swing.*;

public class Tut3 extends JFrame {
	JFileChooser fileC = new JFileChooser();
	Preferences node = Preferences.userNodeForPackage(this.getClass());
	Vector vec = new Vector();
    String s;
	
	public Tut3(){
		this.setTitle("Tutorium 3");
		setSize(300,300);
        setLocation(300,300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JMenuBar menubar = new JMenuBar();
		this.setJMenuBar (menubar);
		JMenu func = new JMenu ("Auswahl");
		menubar.add(func);
		JMenuItem importMenuItem = new JMenuItem("Daten importieren");
		importMenuItem.addActionListener(new ImportActionListener());
		JMenuItem exportMenuItem = new JMenuItem("Daten exportieren");
		exportMenuItem.addActionListener(new ExportActionListener());
		func.add(importMenuItem);
		func.add(exportMenuItem);
		JLabel label = new JLabel ("Tutorium 3");
		label.setHorizontalAlignment(SwingConstants.CENTER);
		this.getContentPane().add(label, BorderLayout.CENTER);
		
			
	}
		
	private class ImportActionListener implements ActionListener{
	
		public void actionPerformed(ActionEvent e){
			if (fileC.showOpenDialog(Tut3.this) == fileC.APPROVE_OPTION){
				
				//neu zu testzwecken
				try{
					InputStream in = new FileInputStream(fileC.getSelectedFile());
					node .importPreferences(in);
					in.close();
					
				} catch (Exception exc){
					exc.printStackTrace();
				}
				// ende von neu
				
			}
		}
	}	

	private class ExportActionListener implements ActionListener {

		public void actionPerformed(ActionEvent e) {
			
			if (fileC.showSaveDialog(Tut3.this) == fileC.APPROVE_OPTION){
			 
				//neu zu testzwecken
				try {
					//saveSettings();
					OutputStream out = new FileOutputStream(fileC.getSelectedFile());
					node.exportNode(out);
					out.close();
					
				} catch (Exception exc){
					exc.printStackTrace();
				}
			}
		}
	}
}

Müsste ja jetzt klappen die Daten einzulesen. Aber wie übergbe ich sie dann an eine ander Methode, z.b. Split. Anschliessend müssen sie dann ja gespeichert werden und so ausgegeben werden wie ich e soben gepostet hab, aber wie mcht man das? Kann mir das jemand sagen? Oder wie speichere ich denn die jetzt eingelesenen Werte sinvoll ab, sodass sie in der nächsten Methode(split) verwendet werden können?
 
G

Guest

Gast
Wenn du die Datei geöffnet hast, liest du sie in einer while Schleife solange ein, bis du das Dateiende erreich hast. Während dieses zeilenweisen Einlesens, hast du in jedem Durchlauf einen String mit der aktuellen Zeile. Diesen String splittes du dann. Da bekommst du ein String array raus, welches du durchlaufen und in double Werte casten musst. Diese in double gecasteten Teilstrings (jetzt richtige Zahlen) speicherst du in ein neu anzulegendes Array. Hast du alle Zahlen der Zeile so gecastet und in dein Array gesteckt, fügst du es einer Liste hinzu. Dann kommt die nächste Zeile und das Spiel geht von vorne los. Schon hast du deine Zahlen eingelesen und in brauchbarer Form im "Speicher".
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
V Excel Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 4
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S Verbindung von einer Excel Datei zu Java-- Java Basics - Anfänger-Themen 4
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T Zeilenweise Excel-Datei mit Strings befüllen Java Basics - Anfänger-Themen 28
K JApplet zugriff auf Excel Datei Java Basics - Anfänger-Themen 3
T Datei mit Excel öffnen Java Basics - Anfänger-Themen 2
M Probleme mit Excel Datei und JSP Java Basics - Anfänger-Themen 7
D excel datei Spalten lesen? Java Basics - Anfänger-Themen 7
M Auf Excel Datei zugreifen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
Trèfle EXCEL-File Laufwerkunabhängig einbinden. Java Basics - Anfänger-Themen 1
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
K Apache POI Excel Letzte Reihe einer bestimmten Spalte Java Basics - Anfänger-Themen 1
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
P Variablen in Excel speichern Java Basics - Anfänger-Themen 6
P String zerstückeln und in Excel einfügen Java Basics - Anfänger-Themen 11
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
S Kalenderwochen im Excel Java Basics - Anfänger-Themen 0
X Verknüpfte Excel Felder mitändern Java Basics - Anfänger-Themen 6
S Wie bestehende Excel-Einträge mit neuen Vergleichen (mit Apache POI)? Java Basics - Anfänger-Themen 0
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
T Apache POI (Excel) - Probleme mit Zahlenformat Java Basics - Anfänger-Themen 2
F Excel und Poi Java Basics - Anfänger-Themen 12
P Excel-Tabelle erstellen Java Basics - Anfänger-Themen 4
R POI HSSF liesst in Excel Formel statt Ergebnis Java Basics - Anfänger-Themen 4
D println von excel $A$1 Java Basics - Anfänger-Themen 3
D Werte aus Excel in Diagramm einfügen Java Basics - Anfänger-Themen 6
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
K Konvertierung von einem Text in eine Zahl in Excel(JXL) Java Basics - Anfänger-Themen 2
H Ausgabe nach Excel exportieren Java Basics - Anfänger-Themen 7
T Datum aus Excel prüfen Java Basics - Anfänger-Themen 2
D Abfragen ob Excel-Dateien Makros enthalten? Java Basics - Anfänger-Themen 4
Strahlungsleck Datentypen Apache Poi & Excel Datumsformat Java Basics - Anfänger-Themen 4
A POI Einlesen Excel Workbook aus BLOB oder von URL anstatt aus Filesystem ? Java Basics - Anfänger-Themen 3
B Abfragen eines Excel-Feldes auf null Java Basics - Anfänger-Themen 17
D Speichern in Excel über Filechooser Java Basics - Anfänger-Themen 21
S Excel Textfeld auslesen Java Basics - Anfänger-Themen 6
S POI Excel sortieren Java Basics - Anfänger-Themen 4
D BETAVERT aus Excel auch in Java? Java Basics - Anfänger-Themen 4
T Text aus Word in Excel formatieren Java Basics - Anfänger-Themen 3
T ins Excel exportieren. Java Basics - Anfänger-Themen 23
B In Java erstellte Dateien in Excel verwenden Java Basics - Anfänger-Themen 4
M Object in Excel schreiben Java Basics - Anfänger-Themen 4
M HSSF - JTable zu Excel exportieren Java Basics - Anfänger-Themen 13
M Excel in Java Java Basics - Anfänger-Themen 2
G Excel-Interface (J-Integra for COM) Java Basics - Anfänger-Themen 2
J POI: Leere Excel Zellen Java Basics - Anfänger-Themen 3
M Libraries für Arbeit mit Excel (Alternativen) Java Basics - Anfänger-Themen 2
E Schreiben in Excel -Zellen farbig darstellen Java Basics - Anfänger-Themen 4
G Excel in txt umwandeln Java Basics - Anfänger-Themen 1
G Zellen wie bei Excel? Java Basics - Anfänger-Themen 2
S Excel + Datenbank Java Basics - Anfänger-Themen 2
S Daten nach Excel Java Basics - Anfänger-Themen 12
M Hashmap in Excel exportieren Java Basics - Anfänger-Themen 3
G wie funktioniert die Java Excel Api Java Basics - Anfänger-Themen 4
G Kann man Spalten in einer Excel-Tabelle mit Java löschen? Java Basics - Anfänger-Themen 3
V Excel und Java Java Basics - Anfänger-Themen 14
S Export nach Excel in Java Java Basics - Anfänger-Themen 7
D Excel einlesen Java Basics - Anfänger-Themen 3
N Excel Anbindung an webservices Java Basics - Anfänger-Themen 2
G Excel unter Java Java Basics - Anfänger-Themen 4
A Signierte Exe Datei funktioniert nicht mehr Java Basics - Anfänger-Themen 1
A Signierte Exe Datei funktioniert nicht mehr Java Basics - Anfänger-Themen 3
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
hubmar Fehler beim mp4-datei aufrufen, nach dem zweiten aufruf Java Basics - Anfänger-Themen 1
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
G .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
B von Java/Eclipse verwendete Datei existiert gar nicht? Java Basics - Anfänger-Themen 6
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
G CSV-Datei Verarbeiten Java Basics - Anfänger-Themen 8
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben