92 votes

Format de numéro EPPlus

J'ai une feuille excel généré avec Epplus, je suis en train de vivre certains points de douleur, et je tiens à être dirigé par quelqu'un qui ont résolu un problème similaire. Je demande le numéro de mise en forme à une valeur de type double et je tiens à présenter dans excel comme ça.

  • 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 dernier fichier excel toujours ajouter E+0 jusqu'à la fin de ce format, et présente donc les valeurs finales comme cela à la place.

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

Quand je vérifie dans le format des cellules de la feuille excel, je vois que mon format apparaît comme ##0.0 E+2 au lieu de ##0.0 que j'ai appliqué. Ce qui peut être mauvais?

212voto

VDWWD Points 22118

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";
 

-1voto

Zar Shardan Points 1305

Pour une liste de formats standard / échantillons, on pourrait:

  1. dans Excel, faites un clic droit sur n’importe quelle cellule, sélectionnez "Formater les cellules"
  2. dans la liste Catégorie: sélectionnez le format souhaité
  3. puis sélectionnez "Personnalisé" et dans la zone de texte "Type", il affichera la chaîne de format souhaitée / sélectionnée.

Cela fonctionne pour tout type de données dans XL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X