Apache Poi Formel Ergebnis ausgeben

Maurice

Mitglied
Hallo,
ich hoffe das ist der richtige Themenbereich.
Naja, also meine Aufgabe lautete ich soll ein Arbeitszeitenprogramm schreiben. Dieses Programm soll in Firmen als Arbeitszeitenerfassungsprogramm benutzt werden. Also die Büro leute müssen später nur in das Programm den Namen und die Anfang und Endarbeitszeit eintippen. Das Programm soll diese Daten in eine Excel Tabelle machen. Das ganze habe ich vor mit Apache Poi zu realisieren. Ich habe erstmal einzelne Test mit Apache Poi gemacht, da ich zum erstenmal damit arbeite.
Mein Problem liegt darin ich schreibe in 2 Zeilen 2 Zahlen und aus diesen lasse ich die Summe ermitteln. Dann will ich die Summe auslesen. Nur als ergebniss bekomme ich immer die Formel raus also sprich SUM(B3:B4) anstatt einer 2. Gibt es fertige Methoden um das ergebnis zu bekommen oder muss ich mir dieses selber schreiben? Ich habe unten mal den gesamten code gepostet.
Schonmal vielen Dank :)
mfg Maurice

Java:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.*;

public class Test {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		System.out.println("Starten");
		Workbook wb = new HSSFWorkbook();
		Sheet sheet1 = wb.createSheet("Januar");
		FileOutputStream fileOut= new FileOutputStream("MW.xls");
		
	    /**
	     * Zellenbreite
	     */
	    sheet1.setColumnWidth(0,2000);
	    sheet1.setColumnWidth(1,2000);
	    sheet1.setColumnWidth(2,2000);
	  
	    /**
	     * Zellenhöhe
	     */
		Row titleRow = sheet1.createRow(0);
		titleRow.setHeightInPoints(35);
		
		/**
		 * Schreibe in Zelle 1
		 */
		Row row = sheet1.createRow(0);
		Cell cell = row.createCell(0);
        cell.setCellValue("MW");
             
        
        /**
         * Schreibe mehrere Zahlen und gebe die summe aus
         */
        row = sheet1.createRow(2); //Nach Unten
        cell= row.createCell(1);   //Nach Rechts
        cell.setCellValue(5);
        
        row = sheet1.createRow(3); //Nach Unten
        cell= row.createCell(1);   //Nach Rechts
        cell.setCellValue(1);
        
        
        
        row = sheet1.createRow(25); //Nach Unten
        cell= row.createCell(1);   //Nach Rechts
        String formel = "SUM(B3:B4)";
        cell.setCellFormula(formel);
        cell= row.createCell(0);
        cell.setCellValue("Summe:");
        
        
        /**
         * Erstellen
         */
        wb.write(fileOut);
	    fileOut.close();
	    
	    /**
	     * Weiter im Lesen
	     */
        InputStream inp = new FileInputStream("MW.xls");       
        HSSFWorkbook wb1 = new HSSFWorkbook(new POIFSFileSystem(inp));
        Sheet sheet = wb1.getSheetAt(0); 
        Row row3 = sheet.getRow(25);
        Cell cell3 = row3.getCell(1);
        System.out.println(cell3);
	}

}
 
G

Gast2

Gast
Du überschreibst ja die [c]cell[/c] immer wieder...

Probier doch einfach mal
Java:
       /**
         * Schreibe in Zelle 1
         */
        Row row = sheet1.createRow(0);
        Cell acell = row.createCell(0);
        acell.setCellValue("MW");
             
        
        /**
         * Schreibe mehrere Zahlen und gebe die summe aus
         */
        row = sheet1.createRow(2); //Nach Unten
        Cell bcell= row.createCell(1);   //Nach Rechts
        bcell.setCellValue(5);
        
        row = sheet1.createRow(3); //Nach Unten
        Cell ccell= row.createCell(1);   //Nach Rechts
        ccell.setCellValue(1);
        
        
        
        row = sheet1.createRow(25); //Nach Unten
        Cell fcell= row.createCell(1);   //Nach Rechts
        String formel = "SUM(B3:B4)";
        fcell.setCellFormula(formel);
        Cell ecell= row.createCell(0);
        ecell.setCellValue("Summe:");
 

Maurice

Mitglied
Danke erstmal ja aber ich bekomme wieder nur die Formel anstatt die wirkliche Summe.
Ich will damit ja die Summe an den Stunden die man gearbeitet hat bekommen, beispiel
A1: 04:15
A2: 06:15

=SUMME(A1:A2)
Jetrzt will ich das mein Programm mir genau diese Summe gibt also die 10:30 Stunden. Und nicht die Formel =Summe(A1:A2);
 
Zuletzt bearbeitet:

Neue Themen


Oben