Java Daten in Excel mit POI speichern

slitec

Mitglied
Hallo.

Hier habe ich mal ein Programm geschrieben, welches die zufällig generierten (Gleichverteilung) Zahlen in eine Excel Datei speichern soll.
Ich brauche diese Daten, um später eine Lorenzkurve grafisch darzustellen und den Gini-Koeffizienten zu berechnen.

Leider schreibt diese Methode keine Daten in die Excel Datei. Hier einmal die Methode:
Java:
public void eintrag() {
        HSSFWorkbook datei = new HSSFWorkbook();
       
        Sheet blatt = datei.createSheet("Gleichverteilung"); //erstellt ein neues Sheet in Excel
       
        for (int i =0;i<liste.length;i++) {
            Row reihe = blatt.createRow(0);
            Cell zelle = reihe.createCell(i);
            zelle.setCellValue(liste[i]);
        }
        try {
            FileOutputStream out = new FileOutputStream("Gleichverteilung.xls");
            datei.write(out);
            out.close();
        } catch(Exception e) {
           
        }
    }


Vollständiger Code:

Code:
package a5;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import java.util.Random;
import java.util.Arrays;

public class Gleichverteilung {
   
    int[] liste; //Array wird definiert als "liste"
    Random zufall = new Random();    // wird erzeugt für Klasse erzeugenUnsortiert()
    int plätze;
   
   
   
   
   
    public void erzeugeZufallszahl(int plätze,int oberGrenze) {
        //Erzeugt nicht gleichverteilte Zufallszahlen (doppelte sind möglich)
       
        this.plätze = plätze;
        liste = new int [plätze];
        //Anzahl an Plätze wird übergeben
       
        for (int i=0; i<liste.length;i++) {
            liste[i] = zufall.nextInt(oberGrenze);
            // Liefert eine int-Pseudo-Zufallszahl im Bereich von 0 bis oberGrenze
        }
        Arrays.sort(liste);
    }
   
   
    public void eintrag() {
        HSSFWorkbook datei = new HSSFWorkbook();
       
        Sheet blatt = datei.createSheet("Gleichverteilung"); //erstellt ein neues Sheet in Excel
       
        for (int i =0;i<liste.length;i++) {
            Row reihe = blatt.createRow(0);
            Cell zelle = reihe.createCell(i);
            zelle.setCellValue(liste[i]);
        }
        try {
            FileOutputStream out = new FileOutputStream("Gleichverteilung.xls");
            datei.write(out);
            out.close();
        } catch(Exception e) {
           
        }
    }
   
   
   



public static void main (String[] args) {
   
   
   
   
   
}

}


Main:
Java:
package a5;

public class Main2 {
   
    public static void main (String[] args) {
       
        Gleichverteilung g = new Gleichverteilung();
        g.erzeugeZufallszahl(10,20);
        g.eintrag();
       
       
       
       
       
    }
   
   
   

}


Kann mir jemand dabei behilflich sein? Danke



Mit freundlichen Grüßen
 
Zuletzt bearbeitet:
Hab das Problem wie folgt selbst gelöst.


Java:
public void eintrag() {
        
        
        Sheet blatt = datei.createSheet("Gleichverteilung"); //erstellt ein neues Sheet in Excel
        
        
        for (int i =0;i<liste.length;i++) {
            
            Row reihe = blatt.createRow(i);
            Cell zelle = reihe.createCell(0);
            zelle.setCellValue(liste[i]);
        }
        try {
            FileOutputStream out = new FileOutputStream("Gleichverteilung4.xls");
            datei.write(out);
            out.close();
        } catch(Exception e) {
            
        }
    }

Hatte die Reihe und Zelle verwechselt.
 
Zurück