# Formatierungsproblem



## 1Frage (27. Aug 2010)

Hallo zusammen,

ich habe folgendes Anliegen.

Ich möchte innerhalb eines XML Schemas aus der Datenbank numerische Daten in Excel exportieren. Der Export funktioniert soweit auch, nur die Verarbeitung der Daten sind unmöglich.

Z.B.

SELECT TO_CHAR(DATA_A, 'TM') liefert einen String mit dem richtigen Format also 12,43.
Jedoch erscheint wie erwartet in Excel das Format als Zeichenkette, somit ist eine Verarbeitung fast unmöglich.

Wenn die Abfrage nun folgendermaßen heißen würde:

SELECT TO_NUMBER(DATA_A,'999999.99') erscheinen die Daten in Excel als korrekter numerischer Wert, jedoch ist auch hier die Verarbeitung der Daten nicht möglich.

Die Daten sind als reine Number Daten in der DB vorhanden. Wenn ich diese ganz ohne weiteres in Excel exportiere kommt bei manchen Daten die exponentielle Schreibweise, womit Excel wieder nichts anfangen kann.

Meine Frage ist, kann man diese Formatierung innerhalb der DB lösen oder muss ein Makro oder dergleichen in Excel geschrieben werden, das z.B. die Zeichenketten in Nummern umwandelt?

Grüsse


----------



## Gast2 (27. Aug 2010)

Wie schreibst du denn das Excel file? Mit Apache POI? Du solltest sicherstellen das du der Cell den richtigen Datentyp setzt.


----------



## 1Frage (27. Aug 2010)

Ja, ich benutze die POI von Apache.
Jedoch weiß ich nicht, wie ich die Zellen formatieren soll, da ich nicht nur Numberfelder sondern auch Datumsfelder im Export habe.
Ich benutze für den Excelexport JasperReports, da mein Programm ein Reportingtool mit Möglichkeit des Excelexports ist.

Der Code sieht in der Java Klasse folgendermaßen aus.


```
JRXlsxExporter exporter = new JRXlsxExporter();
	    exporter.setParameter(JRExporterParameter.JASPER_PRINT, this.jasperPrint);
	    exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "Report.xls");
	    exporter.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS, Boolean.TRUE);
	    exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
	    exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
	    exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
	    exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
	    exporter.setParameter(JExcelApiExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
```

Vielleicht kann mir ja jemand mit der Zellenformatierung irgendwie ein Tipp geben.

Gruss


----------

