Cela semble idiot, mais je n’ai pas pu obtenir mes valeurs au format #/####
pour écrire en tant que chaîne littérale plutôt que de me mettre au format de date dans Excel.
J'utilise ClosedXML pour écrire dans Excel et j'utilise les éléments suivants:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).DataType = XLCellValues.Text;
tableRow.Cell(1).Value = "2/1997";
// snip
En regardant la feuille de sortie Excel que je reçois dans la cellule 2/1/1997
- même si je définis le format en tant que texte en code, je l’obtiens en tant que "Date" dans la feuille de calcul Excel - j’ai vérifié cela en faisant un clic droit sur la cellule, cellule de format, voir "date" comme format.
Si je change les choses jusqu'à:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).Value = "2/1997";
tableRow.Cell(1).DataType = XLCellValues.Text;
// snip
Je reçois plutôt 35462
comme sortie.
Je veux juste que ma valeur littérale de 2/1997
soit affichée sur la feuille de calcul. S'il vous plaît conseiller sur la façon de corriger.
essaye ça
ws.Cell(rowCounter, colCounter).SetValue<string>(Convert.ToString(fieldValue));
Considérer:
tableRow.Cell(1).Value = "'2/1997";
Notez la citation simple.
Pas sûr de partir de ClosedXML, mais peut-être essayer Range.NumberFormat ( MSDN Link )
Par exemple...
Range("A1").NumberFormat = "@"
Ou
Selection.NumberFormat = "#/####"
ws.Cell(rowCounter, colCounter).Value="'"+Convert.ToString(fieldValue));