Moin Moin,
ich habe ein Programm geschrieben, das Daten aus einer Datenbank abfragt und in ein Excelsheet abspeichert. In dem von mir gefertigten "FormulareVorlage.xls" befindet sich ein Diagramm, dass die Entwicklung übers Jahr grafisch wiedergeben soll.
Der User soll also das Programm starten, eingeben für welches Jahr er abfragen möchte, und ein druckfertiges Excel-Sheet erhalten.
Hierbei tritt allerdings das Problem auf, dass die Zahlen als Text formatiert sind, auch wenn ich über den Befehl "m2_CellStyle.setDataFormat(m2_DataFormat.getFormat("0"));" die Formatierung vorher auf Zahl gesetzt habe. Wo liegt mein Fehler? Wie kriege ich hin, dass die Werte wirklich als Zahlen eingetragen werden, damit mein Diagramm auch etwas mit ihnen anfangen kann?
Ein Screenshot aus meinem Excel-Sheet mit Fehlermeldung befindet sich im Anhang. Stellt nochmal ganz gut dar, wie mein Problem aussieht.
Ich bitte um Hilfe.
Grüße, Wolfstatze
ich habe ein Programm geschrieben, das Daten aus einer Datenbank abfragt und in ein Excelsheet abspeichert. In dem von mir gefertigten "FormulareVorlage.xls" befindet sich ein Diagramm, dass die Entwicklung übers Jahr grafisch wiedergeben soll.
Der User soll also das Programm starten, eingeben für welches Jahr er abfragen möchte, und ein druckfertiges Excel-Sheet erhalten.
Hierbei tritt allerdings das Problem auf, dass die Zahlen als Text formatiert sind, auch wenn ich über den Befehl "m2_CellStyle.setDataFormat(m2_DataFormat.getFormat("0"));" die Formatierung vorher auf Zahl gesetzt habe. Wo liegt mein Fehler? Wie kriege ich hin, dass die Werte wirklich als Zahlen eingetragen werden, damit mein Diagramm auch etwas mit ihnen anfangen kann?
Java:
public void class7_meth2_xlsFileFill(String[] m2_record_strArray, short[][] m2_FormField_shortDim2Array)
throws Exception
{
Workbook m2_xlsWorkbook = new HSSFWorkbook(new FileInputStream("FormulareVorlage.xls"));
FileOutputStream m2_FileOutputStream = new FileOutputStream("FormulareZwischenspeicher.xls");
Sheet m2_xlsSheet = m2_xlsWorkbook.getSheet("GarantieUeberDasJahr");
Row m2_xlsRow = null;
Cell m2_xlsCell = null;
CellStyle m2_CellStyle = m2_xlsWorkbook.createCellStyle();
DataFormat m2_DataFormat = m2_xlsWorkbook.createDataFormat();
Font m2_Font = m2_xlsWorkbook.createFont();
m2_Font.setColor((short)Font.COLOR_NORMAL);
m2_Font.setFontName("Arial");
m2_Font.setBoldweight(Font.BOLDWEIGHT_NORMAL);
m2_Font.setItalic(false);
m2_Font.setFontHeightInPoints((short) 12);
m2_CellStyle.setAlignment(CellStyle.ALIGN_CENTER);
m2_CellStyle.setDataFormat(m2_DataFormat.getFormat("0"));
m2_CellStyle.setFont(m2_Font);
short m2_RowNumber_short;
short m2_CellNumber_short;
m2_xlsWorkbook.getSheetName(0);
for(int i=0;i<m2_record_strArray.length;i++)
{
m2_CellNumber_short = m2_FormField_shortDim2Array[i][0]; // Spalte
m2_RowNumber_short = m2_FormField_shortDim2Array[i][1]; // Zeile
m2_xlsRow = m2_xlsSheet.getRow(m2_RowNumber_short);
m2_xlsCell = m2_xlsRow.getCell(m2_CellNumber_short);
m2_xlsCell.setCellStyle(m2_CellStyle);
m2_xlsCell.setCellValue(m2_record_strArray[i]);
}
m2_xlsWorkbook.write(m2_FileOutputStream);
m2_FileOutputStream.close();
}
Ein Screenshot aus meinem Excel-Sheet mit Fehlermeldung befindet sich im Anhang. Stellt nochmal ganz gut dar, wie mein Problem aussieht.
Ich bitte um Hilfe.
Grüße, Wolfstatze