# Excel Werte in Java verarbeiten



## Wing87 (26. Oktober 2013)

Hallo an alle,

ich möchte folgendes machen. Ich möchte aus einer Excel Datei bestimmte Zeilen und Zellen in einem Java Programm auslesen und später weiterverarbeiten. Was bis jetzt gut klappt ist die gewünschte Zelle korrekt auslesen. Speichern tu ich diese Werte in einer ArrayList. Nun muss ich die Objekte auf exakte Namen überprüfen. Also z.B. enthält meine ArrayList die Elemente: farbe, ost, gemüse. Ich möchte nun, wenn ich das Wort Gemüse finde, das Objekt einer weiteren Liste hinzufügen und diesem Objekt 2 Werte in Form eines Strings aus der Excel übergeben. Es scheitert aber wohl daran, dass ich die Werte nicht vernünftig vergleichen kann. Kann mir da jemand helfen?


----------



## sheel (26. Oktober 2013)

Hi und Willkommen bei tutorials.de,

was genau das Problem ist kann man so aus der Beschreibung (die etwas durcheinander ist)
und ohne Code nicht erkennen. Strings vergleicht man mit equals, aber wenn du etwas aus
Exceldateien auslesen kannst wird dir das wohl klar sein?

Übrigens, xls/xlsx oder doch csv?


----------



## Wing87 (26. Oktober 2013)

vielen Dank für die schnelle Antwort. Ich füge mal einen teil desCodes an, der dafür wesentlich ist:

```
public class ReadExcelTest {
    private static Object Querschnittsdienste;
    
 
    @SuppressWarnings("unchecked")
    public static void main(String[] args) throws Exception {
       
        List Obst = new ArrayList();
        List Gemuese = new ArrayList();
        List Farbe = new ArrayList ();
        JFileChooser chooser = new JFileChooser();
        int check = chooser.showOpenDialog(null);
        int i = 0;
        int u;
        int a;

        if(check==JFileChooser.APPROVE_OPTION){
            
         try {
                
                HSSFWorkbook excelfile = new HSSFWorkbook(new FileInputStream(chooser.getSelectedFile()));
                Sheet blatt = excelfile.getSheetAt(0);
                Iterator rows = blatt.rowIterator();
                    while(blatt.getRow(i).getCell(0)!=null)
                     {
                    List sammlung = new ArrayList();
                  
                        for (u=2;u<=5;u++)
                        {
                            Cell zelle = blatt.getRow(i).getCell(u);
                            sammlung.add(zelle);
                        } 
                       
                        for (a=0;a<=sammlung.size();a++)
                            {
                             
                                
                            }
                                
                            
                            }
                        i++; 
                        
                        
            
             }catch(Exception e){
                
            }
        }
    }

}
```
Es handelt sich um eine .xls Datei. In der leeren for schleife möchte ich jetzt jedes Element in der Liste Sammlung auf einen String überprüfen und wenn ich z.B. den String "Obst" finde, soll ein neues Objekt Application erzeugt werden, dem ich 2 Übergabeparamter in Form eines Strings aus der Excel übergeben will. Mit equals() funktioniert es irgndwie nicht. Das habe ich schon versucht.


----------



## Wing87 (26. Oktober 2013)

Also ich hab es jetzt geschafft aber stehe vor dem nächsten Problem. Ich habe manuell Filter in Excel gesetzt. Das Problem ist, dass Apache POI das anscheinend nicht berücksichtigt. Von ca. 1000 Datensätzen habe ich manuell bis auf 20 gefiltert, er rennt aber dennoch komplett durch. Hat da jemand einen Tipp?


----------

