Ich erstelle eine Excel-Datei mit ColdFusion und POI-Arbeitsmappe. Die Datei ist großartig erstellt, aber ich habe Zellen, die numerische Werte enthalten und müssen als Zahlen für SUM und andere Funktionen gespeichert werden, um ordnungsgemäß zu funktionieren.ColdFusion - POI Excel-Arbeitsmappenformat als Nummer
Ich möchte Code aufrufen, nachdem die Daten für das Excel-Blatt hinzugefügt wurden, das im Grunde die Daten überschleifen wird. Wenn der Wert numerisch ist, legen Sie das Datenformat als numerisch fest. Auf diese Weise kann ich, wenn ich die Excel-Datei öffne, eine SUMME oder was auch immer in dieser Datenspalte ausführen.
Unten ist, was ich bisher versucht habe, und es funktioniert ", weil alle Zellen die Hintergrundfarbe #EBEBEB haben, aber sie haben immer noch die Warnung, die sagt" Nummer als Text gespeichert "wie unten zu sehen. Wie kann ich das beheben?
// Create our dataFormat object
df = poiWorkbook.createDataFormat();
// Create our new style
formatNumber = poiWorkbook.createCellStyle();
formatNumber.setFillPattern(formatEvenRowRightAlignStyle.SOLID_FOREGROUND);
formatNumber.setAlignment(formatNumber.ALIGN_RIGHT);
XSSFColor = createObject("java", "org.apache.poi.xssf.usermodel.XSSFColor");
formatNumber.setFillForegroundColor(XSSFColor.init(Color.decode("##EBEBEB")));
formatNumber.setDataFormat(df.getFormat("0.00"));
// Loop over the data and apply the format
for (x=0;x<rowCount;x++) {
for (y=0;y<colCount;y++) {
poiSheet.getRow(x).getCell(y).setCellStyle(formatNumber);
}
}
* Anrufcode nach dem Hinzufügen der Daten * Warum? Es ist möglich, aber es wäre einfacher und weniger fehleranfällig, während des Auffüllens des Blattes zu formatieren. – Leigh
@Leigh - Nun, der Grund ist, weil ich eine CF-Abfrage mit all meinen Daten erstellen und dann mit der SpreadsheetAddRows (Sheet, Query) -Methode hinzufügen. – Phil
@Leigh - nachdem ich alle Daten hinzugefügt habe, gehe ich dann über die Arbeitsmappe und wende die Formatierung an. – Phil