it-swarm.com.de

EPPlus-Zahlenformat

Ich habe eine Excel-Tabelle mit Epplus erstellt, habe einige Probleme und möchte von jemandem geleitet werden, der eine ähnliche Herausforderung gelöst hat. Ich muss Zahlenformatierung auf einen doppelten Wert anwenden und ich möchte es in Excel so darstellen.

  • 8 -> 8.0
  • 12 -> 12.0
  • 14.54 -> 14.5
  • 0 -> 0,0

Hier ist mein Code

ws.Cells[row, col].Style.Numberformat.Format = "##0.0";

Die endgültige Excel-Datei fügt immer E + 0 an das Ende dieses Formats an und zeigt stattdessen die endgültigen Werte wie folgt an.

  • 8 -> 8,0E + 0
  • 12 -> 12,0E + 0
  • 14,54 -> 14,5E + 0
  • 0 -> 000,0E + 0

Wenn ich die Formatzellen des generierten Excel-Arbeitsblatts einchecke, sehe ich, dass mein Format als ## 0.0E + 2 anstelle von ## 0.0 angezeigt wird, das ich angewendet habe. Was kann falsch sein?

44
Tonto

Hier sind einige Zahlenformatoptionen für EPPlus:

//integer (not really needed unless you need to round numbers, Excel will use default cell properties)
ws.Cells["A1:A25"].Style.Numberformat.Format = "0";

//integer without displaying the number 0 in the cell
ws.Cells["A1:A25"].Style.Numberformat.Format = "#";

//number with 1 decimal place
ws.Cells["A1:A25"].Style.Numberformat.Format = "0.0";

//number with 2 decimal places
ws.Cells["A1:A25"].Style.Numberformat.Format = "0.00";

//number with 2 decimal places and thousand separator
ws.Cells["A1:A25"].Style.Numberformat.Format = "#,##0.00";

//number with 2 decimal places and thousand separator and money symbol
ws.Cells["A1:A25"].Style.Numberformat.Format = "€#,##0.00";

//percentage (1 = 100%, 0.01 = 1%)
ws.Cells["A1:A25"].Style.Numberformat.Format = "0%";

//accounting number format
ws.Cells["A1:A25"].Style.Numberformat.Format = "_-$* #,##0.00_-;-$* #,##0.00_-;_-$* \"-\"??_-;[email protected]_-";

Ändern Sie die Dezimal- und Tausendertrennzeichen nicht in Ihre eigene Lokalisierung. Excel erledigt das für Sie.

Auf Anfrage einige DateTime-Formatierungsoptionen.

//default DateTime pattern
worksheet.Cells["A1:A25"].Style.Numberformat.Format = DateTimeFormatInfo.CurrentInfo.ShortDatePattern;

//custom DateTime pattern
worksheet.Cells["A1:A25"].Style.Numberformat.Format = "dd-MM-yyyy HH:mm";
102
VDWWD