# Exceltabelle in Java erstellen und Werte einlesen



## Morinho (4. Nov 2014)

Hallo zusammen,

ich bedanke mich gleich im Voraus für alle Antworten und für jede noch so kleine Hilfe. 

Meine folgende Schwierigkeit ist:
Ich muss eine Auswertung schreiben aus der wiederrum eine Langzeitauswertung aus den MIN und MAX werten der benötigten 15 Spalten gemacht werden kann. Soweit bin ich schon nur jetzt kommt die Schwierigkeit für mich zumindestens. Ich muss nun ein neues Excelfile erstellen das in Tabelle 2 die berechneten MIN und MAX werte einträgt und in Tabelle 1 des Excelfiles Diagramme dazu erstellt.
Ich habe hierzu eine Vorlage gebastelt damit ihr euch das Bildlich vorstellen könnt und mir vielleicht besser weiterhelfen könnt.

Zusätzlich sollt ihr noch wissen, dass man ja bei einer Langzeitauswertung mehrere Dateien auswählt das heißt jede Datei bekommt in der Vorlage eine Zeile. Das heißt mein Beispiel ist nur anhand einer ausgewertet Datei (Werte natürlich irrelevant).



VG
Morinho


----------



## chuxXo (4. Nov 2014)

Wo ist die konkrete Frage ?  Hast du einen Ansatz ?


----------



## Morinho (4. Nov 2014)

Die konkrete Frage lautet eigentlich: Ob es mit einer Vorlage besser ist oder ob ich ein neues Excelfile kreieren sollte?
Ansätze habe ich noch keine.


----------



## chuxXo (4. Nov 2014)

Ich versteh den korrekten Sinn noch nicht. Was willst du am Ende mit den Werten anstellen ?
Warum Vorlage und warum neu kreieren ?


----------



## Morinho (5. Nov 2014)

Ok fangen wir ganz vorne an denn die grundlegende Frage von mir ist:

Wie kann ich ein Excelfile in java erstellen?


----------



## VfL_Freak (5. Nov 2014)

Moin,

Auswahl satt :
https://www.google.de/search?q=java...annel=nts&gfe_rd=cr&ei=kcZZVMf-FISP-waz6oGYAg

Gruß
Klaus


----------



## Morinho (5. Nov 2014)

Ok danke


----------



## chuxXo (5. Nov 2014)

Der gute alte Google


----------



## Morinho (6. Nov 2014)

Nach langer Suche habe ich nur sehr aufwendige Codes gefunden.

Gibt es eine Möglichkeit wie es ganz kurz und knapp geht?


----------



## chuxXo (6. Nov 2014)

Morinho hat gesagt.:


> Nach langer Suche habe ich nur sehr aufwendige Codes gefunden.
> 
> Gibt es eine Möglichkeit wie es ganz kurz und knapp geht?



Apache


----------



## Morinho (6. Nov 2014)

Code bitte.

Ansonsten danke für deine Bemühungen.


----------



## Joose (6. Nov 2014)

Morinho hat gesagt.:


> Code bitte.



Um Code bitten wird nicht gerne gesehen


----------



## Morinho (6. Nov 2014)

Bin aber mit dem Wort Apache auf das gleiche gestoßen viel zu aufwendig vielleicht bin ich nur zu blind den richtigen zu finden aber ich bitte darum einmal eine Ausnahme zu machen.


----------



## chuxXo (6. Nov 2014)

Morinho hat gesagt.:


> Bin aber mit dem Wort Apache auf das gleiche gestoßen viel zu aufwendig vielleicht bin ich nur zu blind den richtigen zu finden aber ich bitte darum einmal eine Ausnahme zu machen.



Apache ist nicht so aufwendig, wie du denkst  versuchs mal aus, poste code und wir helfen weiter


----------



## Morinho (6. Nov 2014)

Alles klar danke ich werde erst morgen daran weiterarbeiten können.

Das heißt ich werde morgen Nachmittag einen Code posten was ich bis jetzt habe.


----------



## Morinho (12. Nov 2014)

Was mache ich falsch wenn bei den letzten 2 Zeilen die angegebenen Fehler kommen?


```
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
//import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.WorkbookUtil;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


public class Dateierstellen {
	 	/*Workbook wb = new HSSFWorkbook();
	    FileOutputStream fileOut = new FileOutputStream("test.xls");
	    wb.write(fileOut);
	    fileOut.close();*/
	
	Workbook wb = new HSSFWorkbook();
	Sheet sheet1 = wb.createSheet("firsttest");
	Sheet sheet2 = wb.createSheet("secondtest");
	
	String safeName = WorkbookUtil.createSafeSheetName("[O'Brien's sales*?]");
	Sheet sheet3 = wb.createSheet(safeName);
	
	FileOutputStream fileOut = new FileOutputStream ("test.xls");
	wb.write(fileOut); 
	fileOut.close;
}
```

*Fehler:
Multiple markers at this line
	- Syntax error on token ".", @ expected after this token
	- Syntax error, insert "SimpleName" to complete QualifiedName
	- Syntax error, insert ")" to complete MethodDeclaration
	- Syntax error, insert "Identifier (" to complete MethodHeaderName*


*Fehler:
Multiple markers at this line
	- Syntax error, insert "Identifier (" to complete MethodHeaderName
	- Syntax error, insert ")" to complete MethodDeclaration*


----------



## Joose (12. Nov 2014)

[ot]
Bitte verwende in Zukunft 
	
	
	
	





```
-Tags für deinen Java-Code, danke! :)
[/ot]

Dein ganzer Code steht direkt in der Klassendefinition drinnen was aber nicht zulässig ist.
Gib den Code in eine Methode dann sollte es passen.

PS: Der Aufbau einer Klasse bzw. die Syntak sind wirklich Grundlagen vom JAVA die man selber lernen und üben muss.
```


----------



## Morinho (12. Nov 2014)

Ohja das stimmt danke 
Es ist einfach noch viel zu früh :lol:


----------



## Morinho (12. Nov 2014)

Aus welchem Grund könnte der Fehler auftauchen?


```
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.WorkbookUtil;
//import org.apache.poi.ss.usermodel.Workbook;
//import org.apache.poi.xssf.usermodel.XSSFWorkbook;


public class Dateierstellen {
    
    private Sheet sheet1;
    private Sheet sheet2;
    private Sheet sheet3;

    public void Createsheet(String[] args) throws IOException {
         /*Workbook wb = new HSSFWorkbook();
        FileOutputStream fileOut = new FileOutputStream("test.xls");
        wb.write(fileOut);
        fileOut.close();*/
    
    Workbook wb = new HSSFWorkbook();
    setSheet1(wb.createSheet("firsttest"));
    setSheet2(wb.createSheet("secondtest"));
    
    String safeName = WorkbookUtil.createSafeSheetName("[O'Brien's sales*?]");
    setSheet3(wb.createSheet(safeName));
    
    FileOutputStream fileOut = new FileOutputStream ("test.xls");
    wb.write(fileOut);
    fileOut.close();
    }

    public Sheet getSheet1() {
        return sheet1;
    }

    public void setSheet1(Sheet sheet1) {
        this.sheet1 = sheet1;
    }

    public Sheet getSheet2() {
        return sheet2;
    }

    public void setSheet2(Sheet sheet2) {
        this.sheet2 = sheet2;
    }

    public Sheet getSheet3() {
        return sheet3;
    }

    public void setSheet3(Sheet sheet3) {
        this.sheet3 = sheet3;
    }

}
```

*Fehler: Hauptmethode in Klasse Dateierstellen nicht gefunden. Definieren Sie die Hauptmethode als:
   public static void main(String[] args):
oder eine JavaFX-Anwendung muss javafx.application.Application erweitern*


----------



## VfL_Freak (12. Nov 2014)

Moin,



Morinho hat gesagt.:


> Aus welchem Grund könnte der Fehler auftauchen?


Das steht doch da:



Morinho hat gesagt.:


> Fehler: Hauptmethode in Klasse Dateierstellen nicht gefunden.
> Definieren Sie die Hauptmethode als: public static void main(String[] args)


Wenn Du keine main-Methode hast, kommt halt diese Meldung .............

Gruß
Klaus


----------



## Morinho (12. Nov 2014)

Stimmt wie gesagt noch viel zu früh ;P


----------



## Morinho (12. Nov 2014)

Habe es nun geschafft und möchte jetzt in bestimmte Zeilen etwas reinschreiben bzw. manche Zeilen verbinden um dort dann eine Überschrift einzufügen.
Wie sollte ich da vorgehen?

```
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

import java.io.FileOutputStream;
import java.io.IOException;
//import java.sql.Date;
//import java.util.Calendar;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;


public class Dateierstellen {
    
    //private static Sheet sheet;
    private Sheet sheet1;
    private Sheet sheet2;

    public static void main(String[] args) throws IOException, NullPointerException {
    
    Workbook wb = new HSSFWorkbook();
    setSheet1(wb.createSheet("Diagramme"));
    setSheet1(wb.createSheet("Metadaten"));
    
    
    /*Row row = sheet.createRow((short)2);
    row.createCell(0).setCellValue(1.1);
    row.createCell(1).setCellValue(new Date(0));
    row.createCell(2).setCellValue(Calendar.getInstance());
    row.createCell(3).setCellValue("a string");
    row.createCell(4).setCellValue(true);
    row.createCell(5).setCellType(Cell.CELL_TYPE_ERROR);*/
    
    FileOutputStream fileOut = new FileOutputStream ("Langzeitauswertung.xls");
    wb.write(fileOut);
    fileOut.close();
    }

    private static void setSheet1(Sheet createSheet) {
        
    }

    public Sheet getSheet1() {
        return sheet1;
    }

    public Sheet getSheet2() {
        return sheet2;
    }
}
```


----------



## VfL_Freak (12. Nov 2014)

Moin,

ist es wirklich schwer, die Java-Tags zu benutzen??
Steht doch groß genug über den Editor !!

Gruß
Klaus


----------



## Flown (12. Nov 2014)

[OT]Java™ Quelltext ist bitte in 
	
	
	
	





```
-Tags zu schreiben: [code=Java]hier Java Code einfügen
```
[/OT]


----------



## Morinho (12. Nov 2014)

Sorry weis leider nicht wie man die benutzt bin auf dem Gebiet mit Excel in java sehr hilflos.

Wenn du mir es kurz erklären könntest wäre das super


----------



## Joose (12. Nov 2014)

Morinho hat gesagt.:


> ...möchte jetzt in bestimmte Zeilen etwas reinschreiben bzw. manche Zeilen verbinden um dort dann eine Überschrift einzufügen.
> Wie sollte ich da vorgehen?



Lies dir einfach mal die Dokumentation dazu durch und suche im Internet nach Beispielen mit dieser Bibliothek.
Wenn du eine wirklich konkrete Frage kannst du diese gerne wieder hier stellen.

PS: Wenn es wirklich noch zu früh ist warte doch einfach auf später 

EDIT:


Morinho hat gesagt.:


> Sorry weis leider nicht wie man die benutzt bin auf dem Gebiet mit Excel in java sehr hilflos.
> 
> Wenn du mir es kurz erklären könntest wäre das super



Das hat nichts mit Excel zu tun, diese 
	
	
	
	





```
-Tags, sondern mit dem Forum hier!
Damit man den Java Code hier halbswegs gut formatiert lesen kann sollte man jeglichen Java Code den man posten will zwischen [code=Java]-Tags schreiben.
Siehe dazu folgenden [URL="http://www.java-forum.org/forum-faq-beitraege/7407-man-fragen-richtig-stellt.html#post506132"]Beitrag Punkt 8[/URL]
```


----------



## Morinho (12. Nov 2014)

Ok danke jetzt komm ich mit.

Ja da sagst vielleicht was aber von der Arbeit heimgehen kommt meistens ned so gut


----------



## Morinho (12. Nov 2014)

Aber hätte nun jemand einen Ansatz zu der Frage wie man in bestimmte Zellen etwas reinschreibt nachdem man es erstellt hat?


----------



## Joose (12. Nov 2014)

Morinho hat gesagt.:


> Aber hätte nun jemand einen Ansatz zu der Frage wie man in bestimmte Zellen etwas reinschreibt nachdem man es erstellt hat?



Ja: Eigeninitiative zeigen und sich die Dokumentation durchlesen. Diese enthält Tutorials/Beispiele wie man gewisse Sachen macht.
Wenn du eine konkrete Frage zu einem Problem hast kannst du diese gerne stellen, nur etwas nicht zu wissen stellt kein Problem da


----------



## Morinho (12. Nov 2014)

Ok schade das es kein Forum gibt wo man einfach einmal richtig Hilfe bekommt bzw. einfach mal eine Lösung und nicht irgendwelche Tutorials die Meterlang sind und die Beispiele darin nur allgemein sind.

Aber danke an alle.


----------



## VfL_Freak (12. Nov 2014)

Moin,



Morinho hat gesagt.:


> schade das es kein Forum gibt wo man einfach einmal richtig Hilfe bekommt bzw. einfach mal eine Lösung und nicht irgendwelche Tutorials die Meterlang sind und die Beispiele darin nur allgemein sind.


Du solltest nicht sofort aufgeben, wenn Dir nicht die komplette Lösung präsentiert wird!

Erstens ist sowas eh' nicht der Sinn dieser Seite!
Hier werden Hilfen bei konkreten Problemem/Fragen oder zumindest Hinweise/Denkanstöße!

Zum zweiten solltest Du berücksichtigen, dass die Leute, die hier posten, dies i. d. R. nicht hauptberuflich machen, sondern neben dem eigentlichen Beruf oder in ihrer Freizeit!

Und drittens wird hier schon ein wenig Eigeninitiative erwartet, auf die man mit Tipps und Hilfen aufbauen kann!

Vielleicht noch dies:
http://www.java-forum.org/forum-faq-beitraege/7407-man-fragen-richtig-stellt.html

Gruß
Klaus


----------



## Joose (12. Nov 2014)

Morinho hat gesagt.:


> Ok schade das es kein Forum gibt wo man einfach einmal richtig Hilfe bekommt bzw. einfach mal eine Lösung und nicht irgendwelche Tutorials die Meterlang sind und die Beispiele darin nur allgemein sind.



Wenn du fix und fertige Lösungen willst bist du hier falsch bzw. kannst im Job Bereich einen Thread aufmachen und dir die Aufgabe lösen lassen (gegen entsprechendes Entgelt).
Wir sind nicht gewillt hier für andere die Jobs/Aufgaben zu machen unbezahlt.

Wir geben hier Hilfe, dazu ist das Forum auch gedacht! 
Diese Hilfe soll dir aber bei der Lösung nur helfen sei es:

Pseudocode/Codeschnipsel
Links zu Dokumentationen/Tutorials usw.
Alternative zu deinem Vorgehen
Erklärung wie man es machen könnte
Etwas Eigeninitiative wünschen wir uns dann noch 
Aber es macht einfach keinen Sinn in jedem Forum Sachen X mal zu erklären inkl. Beispielen wenn es eh einen Dokumentation bzw. Tutorials gibt welche das schon machen 
Des Weiteren gehört es zum Job (Programmierer usw.) sich bestimmte Sachen selbst anzueignen -> Dokumentation und Tutorials durchgehen und mit kleinen Testprogrammen herumprobieren.
(Ansonsten siehe den Post von Vfl_Freak)

The New Halloween Document
Hier findest du ein Beispiel: Diese erstellt eine Excel Blatt und füllt es mit Daten (inkl gestylten Zellen).
Für fast jede Zeilecode gibt es ein Kommentar, welcher erklärt was passiert.

Du weißt was du brauchst, daher sollte es kein Problem darstellen die Zeilen Code rauszufiltern, welche für dich interessant sind.


----------



## Morinho (13. Nov 2014)

Alles klar 

danke trotzdem für eure Hilfe.


----------

