Exceldatei zerlegen!

Shizzl_chrizzl

Erfahrenes Mitglied
Hi Leude hab noch n 2. Projekt am laufen das schon etwas konkreter ist. Also ich muss einfach ein Programm schreiben das ne Exceldatei zerlegt. Nun is der Quelltext schon bis zum Einlesen der Excel Datei fertig:


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;


public class ExcelChooser extends JFrame{



public static void main (String [] args)

{

DesktopFrame exchoose = new DesktopFrame();
exchoose.setLocation(100, 100);
exchoose.setSize(700, 400);
exchoose.setVisible(true);

}

}
class DesktopFrame extends JFrame implements ActionListener {

private JDesktopPane desk;
private static String levelfile;
private JMenuItem open;
private JMenuItem beenden;
private JMenuItem info;


public DesktopFrame() {


super ("Excelreader");

this.desk = new JDesktopPane();
JMenuBar mb = new JMenuBar();
mb.add(createMainMenu());
mb.add(createInfoMenu());
setJMenuBar(mb);

desk.setDesktopManager(new DefaultDesktopManager());
setContentPane(desk);

}

private JMenu createMainMenu()
{

JMenu menues = new JMenu("Datei");
menues.setMnemonic('D');
open = new JMenuItem ("Datei Öffnen", KeyEvent.VK_D);
open.setToolTipText("Öffnet neue (Excel)Datei");
beenden = new JMenuItem ("Beenden", KeyEvent.VK_B);
beenden.setToolTipText("Beendet das Programm");

menues.add(open);
menues.add(beenden);
open.addActionListener(this);
beenden.addActionListener(this);
return menues;

}

private JMenu createInfoMenu()
{

JMenu imenu = new JMenu ("Info");
imenu.setMnemonic('I');
info = new JMenuItem ("Info");
imenu.add(info);
info.addActionListener(this);
return imenu;

}

public void addInfo(JInternalFrame Info, int x, int y)
{
Info.setLocation(x, y);
Info.setSize(450, 200);
Info.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
desk.add(Info);
Info.setVisible(true);

}

public void actionPerformed(ActionEvent e)
{


JMenuItem item = (JMenuItem)e.getSource();

if (item == open)

{

String filename = showOpenDialog();
doFileReader(filename);

}

if (item == beenden ){

System.exit(0);
}


if (item == info){


addInfo (new InfoFrame ("INFO"), 230, 80);
}


}


private String showOpenDialog()
{

String filename = new String();

JFileChooser jfc = new JFileChooser();

int returnVal = jfc.showOpenDialog(this);

if (returnVal == JFileChooser.APPROVE_OPTION)
{
filename = jfc.getSelectedFile().getPath();
}

return filename;
}


void doFileReader(String filename)

{
try{


BufferedReader fileIn = new BufferedReader (new FileReader (filename));
for (int c; (c = fileIn.read()) != -1;)
System.out.print( (char) c );
fileIn.close();
JOptionPane.showMessageDialog(this, "Datei geladen!", "Geladen!", JOptionPane.INFORMATION_MESSAGE);
}

catch (IOException e)
{

System.out.println("Fehler beim Lesen der Datei");
}


}

}


class InfoFrame extends JInternalFrame
{


public InfoFrame (String title)
{

super (title, true, true);
setIconifiable(false);
setMaximizable(false);
setResizable(false);

JPanel panel5 = new JPanel();
JLabel label5 = new JLabel("Bei Fragen, Verbesserungsvorschlägen oder Fehlern bitte Mail an:");

JPanel panel6 = new JPanel();
JLabel label6 = new JLabel("Praktikant2.Q21@hno.atmel.com");

label5.add(panel5);
label6.add(panel6);

Container cp = getContentPane();
cp.add(label5);
cp.add(label6);
cp.setLayout(new FlowLayout());

}
}


Im moment gibt das Programm die ganze Datei wieder aus.
Nun gibt es nur das Prob das ich net weis wie ich ne Exceldatei zerleg. Ich hab etz z.b. ne datei mit 5 Spalten wobei da eben eine bestimmte auslesen will. Jetzt weis ich nicht wie ich die vorgehen soll kann ja schließlich net nur ne Zeile einlesen und dann ausgeben da das in Excel komisch endet. Ihr könnt ja selber ma ne datei einlesen und ausgeben soweit is das Programm schon fertig. Ich hoff ihr könnt mir da helfen ...
Thx für eure Mühe im vorraus

Greetz

Chris
 
"Zerlegen" klingt wirklich...interessant. ;)
Teil doch jede einzelnde der eingelesenen Zeilen anhand des verwendeten Trennzeichens (TAB, Leerzeichen, Semikolon, was weiß ich) in Substrings auf. Dann bekommst Du aus einer Zeile z.B. 10 Substrings = je ein String bei 10 Spalten, je nach Anzahl der Spalten.
 
das Problem is das die Zeilen nicht gleichmäßig ausgegeben werden, d.h. das manchmal werte einfach in der nächsten zeile landen so dass man kein bestimmtest system anwenden kann . Schauts euch am besten selber mal an der quellcode liest ja scho ein also braucht ihr nur n excel file einlesen.

@ snape des müsst eigentlich parsen heissen oder :-(
 
Das liegt daran, dass Excel Dateien keine gewöhnlichen Textdateien sind. Entweder du findest im Netz eine Erläuterung des Dateiformats oder du suchst dir eine schon vorhandene Api für Java.
 
Hallo Shizzl_chrizzl kürze bitte deine Beiträge auf das nur wichtige.

Sprich wenn du mit Exceldateien hantieren willst, bringt es überhaupt nichts wenn du
100 Zeile Code postest wie du deinen JFrame gestalltest.
Das einzige was du erreichst ist das dein Beitrag extrem unübersichtlich wird, und manche
lieber ganz schnell wegklicken.
 

Neue Beiträge

Zurück