Je développe actuellement un composant pour notre application qui nous permet de générer une feuille Excel sans que les clients aient à posséder Excel. Donc Open XML est venu à l'esprit.Office Open XML Date de non-fonctionnement
Ce qui ne fonctionne pas actuellement est l'analyse des dates.
Ceci est mon feuille:
<?xml version="1.0" encoding="UTF-8"?>
<x:worksheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:cols>
<x:col min="1" max="1" width="42.42" customWidth="1" />
<x:col min="2" max="2" width="42.56" customWidth="1" />
<x:col min="3" max="3" width="16.27" customWidth="1" />
</x:cols>
<x:sheetData>
<x:row r="1">
<x:c r="A1">
<x:v>FF kijken hoe dit werkt snap er geen fu** van</x:v>
</x:c>
<x:c r="B1">
<x:v>This is some really, really long text to display.</x:v>
</x:c>
<x:c r="C1" s="0">
<x:v>40651.6777777778</x:v>
</x:c>
</x:row>
</x:sheetData>
</x:worksheet>
Ceci est mon stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<x:styleSheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:numFmts count="1">
<x:numFmt numFmtId="164" formatCode="dd-mm-yy hh:mm" />
</x:numFmts>
<x:fonts count="1">
<x:font>
<x:sz val="11" />
<x:name val="Arial" />
</x:font>
</x:fonts>
<x:cellXfs count="1">
<x:xf numFmtId="164" fontId="0" fillId="0" borderId="0" xfId="0"` applyNumberFormat="1" />
</x:cellXfs>
</x:styleSheet>
Voici le code que j'utilise pour obtenir mes dates.
cell.StyleIndex = 0; .
string columnValue = date.ToOADate().ToString().Replace(",", ".");
//string columnValue = date.ToOADate().ToString().
Replace(CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator, ".");
cell.CellValue = new CellValue(columnValue);
Le résultat est pas ce que je veux, je vais la valeur double de la date et non la date dans la feuille de style que j'ai créé.
Je vais cette 40651,67778 au lieu de 18-4-2011 16:16
Vous essayez d'écrire la date sur un fichier Excel? Si oui, la valeur 40651.67778 n'est-elle pas correcte? – petelids
Oui J'essaie d'écrire la date dans un fichier Excel, il semble que la valeur 40651.67778 est correcte. Excel gère les dates comme des valeurs doubles, mais cette valeur double doit être formatée en Date dans une feuille Excel. J'ai donc fait ce NumberingFormat "jj-mm-aa hh: mm". Mais ça ne marche pas !! –