Bonjour,
je cherche à créer un fichier Excel à l'aide du C#.
J'ai un problème avec certaines cellules, en effet, j'ecris des références qui ressemblent à de longs chiffres, mais qui doivent être écrites et visualisable entièrement quand on ouvre le fichier Excel, elles ne doivent surtout pas être lues au format "nombre". Par exemple, quand j'écris par le code "2E07" dans le fichier Excel, j'obtiens "20000000" quand j'ouvre le fichier, et je perd un donnée importante.
J'ai eu l'idee de sauvegarder les données dans un fichier texte, en séparant les cellules par des ";" comme pour faire un fichier csv. Si on ouvre le fichier avec Excel à la main, on peut faire en sorte qu'il interprète les colonnes en texte.
Donc j'ai voulu faire pareil en code et j'ai utilisé le code suivant :
Le fichier est créé, mais malgré le champ "fieldInfo" que je renseigne de façon à ce que les colonnes soient interprétées en texte, j'ai toujours des nombres quand j'ouvre le fichier....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Excel.Application xlAppl = new Excel.Application(); xlAppl.Visible = false; try { object Missing = System.Reflection.Missing.Value; Excel.Workbooks m_objBooks = (Excel.Workbooks)xlAppl.Workbooks; int val = (int)Excel.XlColumnDataType.xlTextFormat; object fieldInfo = new int[10,2] { {1,val},{2,val}, {3,val},{4,val}, {5,val},{6,val}, {7,val},{8,val}, {9,val},{10,val} }; m_objBooks.OpenText( fichier,Excel.XlPlatform.xlWindows,Missing, Excel.XlTextParsingType.xlDelimited, Excel.XlTextQualifier.xlTextQualifierDoubleQuote, Missing,Missing,true,Missing,Missing,Missing,Missing, fieldInfo, Missing,Missing,Missing,Missing,Missing); Excel._Workbook xlClasseur = xlAppl.ActiveWorkbook; fileXls = fichier.Replace(".txt",".xls"); xlClasseur.SaveAs(fileXls,Missing,Missing,Missing,Missing,Missing,Excel.XlSaveAsAccessMode.xlNoChange,Missing,Missing,Missing,Missing,Missing); xlClasseur.Close(false, Missing, Missing) ; // ferme le XLS
J'ai beaucoup cherché sur la façon d'utiliser la méthode "opentext", il y a beaucoup d'exemples en VB et très peu en C#. J'ai l'impression d'avoir rempli correctement le champ "fieldInfo" mais ça ne veut pas marcher!!
Pourriez-vous m'aider?
Merci d'avance
Partager