web-dev-qa-db-fra.com

Format de numéro EPPlus

J'ai une feuille Excel générée avec Epplus, je ressens quelques points douloureux et je souhaite être dirigée par une personne qui a résolu un problème similaire. Je dois appliquer le formatage numérique à une valeur double et je veux le présenter dans Excel comme ceci.

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

Voici mon code

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

Le fichier Excel final ajoute toujours E + 0 à la fin de ce format et présente donc les valeurs finales comme celle-ci.

  • 8 -> 8.0E + 0
  • 12 -> 12.0E + 0
  • 14.54 -> 14.5E + 0
  • 0 -> 000.0E + 0

Lorsque je vérifie les cellules de format de la feuille Excel générée, je constate que mon format apparaît sous la forme ## 0.0E + 2 au lieu de ## 0.0 que j'ai appliqué. Qu'est-ce qui ne va pas?

44
Tonto

Voici quelques options de format numérique pour 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_-;_-$* \"-\"??_-;_-@_-";

Ne changez pas les séparateurs décimaux et mille en votre propre localisation. Excel le fera pour vous.

En demandant certaines options de formatage DateTime.

//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