2017-04-24 1 views
0

J'ai regardé un peu par StackOverflow mais rien ne semble résoudre tout à fait mon problème.EPPlus provoquant l'avertissement "le nombre dans cette cellule est formaté comme texte ou précédé d'une apostrophe"

Dans mon programme C# j'ai un champ de chaîne qui est parfois juste un nombre, parfois un mot. Cette chaîne est la source de la valeur de cellule dans le document Excel généré.

Lorsque la chaîne contient un mot, cela fonctionne bien, quand il contient "2", j'obtiens l'erreur.

The number in this cell is formatted as text or preceded by an apostrophe.

La plupart des réponses sur SO reposent sur le traitement de la cellule comme un nombre pour se débarrasser de cela, mais les mines ne sont parfois qu'un nombre, et je ne veux pas que la colonne dans Excel contienne des formats différents pour les cellules même.

J'ai essayé de le traiter explicitement comme un champ de texte en utilisant la mise en forme "@" mais ça ne marche pas non plus.

excelRange.Style.Numberformat.Format = "@";

Toute pensée?

Mise à jour:

Lorsque je tape 2 dans Excel, il le traite comme un numéro. Si je change manuellement le formatage en texte, cela fonctionne comme je veux sans aucune erreur. Je ne sais pas quand j'entre programme « 2 » et utilise le « @ » le formatage ne fait pas le même ...

Mise à jour 2:

Le code que je utilise au moment où fonctionne bien quand ce n'est pas une chaîne.

using (var excelRange = excelWorksheet.Cells[lastEmptyRow, 5]) 
{ 
    var value = task.Priority; 
    excelRange.Value = value; 
    excelRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; 
    excelRange.Style.Border.BorderAround(ExcelBorderStyle.Thin); 
} 
+0

pouvez-vous fournir du code où vous obtenez l'erreur? – Digvijay

+0

Salut Digvijay, excuses pour ne pas l'inclure tout de suite. Je l'ai mis à jour maintenant. –

+0

Avez-vous essayé de définir la cellule NumberFormat comme cell.Style.Numberformat.Format = "@"; cela le forcerait à être traité comme une chaîne plutôt qu'un nombre même si vous définissez la valeur comme un nombre. – Digvijay

Répondre

0

Je reçois l'erreur - sauf que ce n'est pas une erreur, il est un avertissement que « Le nombre dans cette cellule est formatée sous forme de texte ou précédé d'une apostrophe. » qui est exactement ce que vous dites que vous voulez, pour la cohérence du format avec d'autres données.

Le message d'erreur peut être désactivé dans Options Excel (see).