Bonjour,

J'ai une application qui gère Excel via un COM (Excel).

Pour le moment, je suis capable d'ouvrir Excel. ensuite j'ouvre un fichier de type CSV (Comma Separate Value) qui contient des données séparé par des virgules. Pour diverses raisons je doit prendre ce fichier et le convertir en un format excel.

À titre informatif, pour faire cette manipulation dans excel, il faut que j'ouvre le fichier CSV en cliquant sur le menu Données/Données Externe/Importer des données...

Évidemment, je doit automatiser le tout. J'ai trouver nombreuses sources intéressantes mais aucune qui réussi à faire exactement ce que je veux. En se moment je suis en mesure d'ouvrir un fichier CSV et l'enregistrer en Excel sauf qu'il ne tient pas compte des virgule du fichier CSV pour séparer c'est valeur.

Voici un URL intéressant : http://msdn2.microsoft.com/en-us/lib...xt(VS.80).aspx

Vous remarquerez que le SaveAs semble suporter les délimitations par virgule mais ça ne fonctionne pas.

Bon assez écrit voici mon code :

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
33
34
35
36
37
38
39
40
41
42
43
44
45
 
// Ouvrir le fichier texte dans Excel.
Excel.Application xlApp = new Excel.Application();
Excel.Workbooks xlClasseur = (Excel.Workbooks)xlApp.Workbooks;
 
xlApp.Visible  =  true;
//--- Voir cette URL : http://msdn2.microsoft.com/en-us/library/microsoft.office.interop.excel.workbooks.opentext(VS.80).aspx 
xlClasseur.OpenText(@"c:\Technocentre.csv",								//--- Filename
	 Excel.XlPlatform.xlWindows,						//--- Origin : Tjs cette valeur
	 1,													//--- StartRow
	 Excel.XlTextParsingType.xlDelimited,				//--- datatype : xlDelimited or xlFixedWidth
	 Excel.XlTextQualifier.xlTextQualifierDoubleQuote,	//--- TextQualifier 
	 false,												//--- ConsecutiveDelimiter 
	 false,												//--- Tab
	 false, 											//--- SemiColon
	 true, 												//--- Comma
	 false,												//--- Space
	 false,												//--- Other
	 Missing,											//--- OtherChar
	 Missing,											//--- Field Info
	 Missing, 											//--- TextVisualLayout
	 Missing, 											//--- DecimalSeparator
	 Missing,											//--- ThousandsSeparator
	 Missing,											//--- TrailingMinusNumbers
	 Missing);											//--- Local
 
Excel.Workbook xlClasseurActif = xlApp.ActiveWorkbook;
 
 
// Enregistrer le fichier au format classeur standard et quitter Excel.
xlClasseurActif.SaveAs(@"C:\Technocentre.xls",
		Excel.XlFileFormat.xlWorkbookNormal, 
		Missing,
		Missing, 
		Missing,
		Missing, 
		Excel.XlSaveAsAccessMode.xlNoChange,
		Missing, 
		Missing,
		Missing, 
		Missing,
		Missing);
 
xlClasseurActif.Close(false, Missing, Missing);
xlApp.Quit();
Merci beaucoup de votre aide.