Salut à tous,

dernière question et j'ai fini avec mon interfaçage Excel

Pour rappel : je crée un fichier "xls" qui est en fait un fichier csv (je sais je triche)

Ensuite je l'ouvre avec la méthode OpenText comme suit :

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
 
// Ouverture d'Excel et traitement du fichier
 Variant vXLWorkbooks, vXLWorkbook, vMSExcel;
 AnsiString vFileName = nf; //nom du fichier
 Variant vOrigin = 1; // = xlWindows format Windows (par défaut)
 Variant vStartRow = 1; // on commence à la 1ère ligne (par défaut)
 Variant vDataType = 1; // = xlDelimited format délimité (par défaut)
 Variant vTextQualifier = 1; // = xlTextQualifierDoubleQuote qualificateur de texte (par défaut)
 Variant vConsecutiveDelimiter = false; // pas de délimitateur consécutif
 Variant vTab = false; // pas délimitateur tab
 Variant vSemicolon = true; // délimitateur ";"
 Variant vComma = false; // pas délimitateur virgule
 Variant vSpace = false; // pas délimitateur espace
 Variant vOther = false; // pas délimitateur autre
 Variant vOtherChar = ""; // délimitateur Other non actif
 
 Variant vFieldInfo;     // On veut {{1,2},{2,2},{3,4}}
 vFieldInfo = VarArrayCreate(OPENARRAY(int, (0, 2, 0, 1)), varInteger);
 vFieldInfo.PutElement(1,0,0); //on affecte 1 (Colonne Excel N°1) à la ligne 0 colonne 0 du tab
 vFieldInfo.PutElement(2,0,1); //on affecte 2 (Format Texte = 2) à la ligne 0 colonne 1 du tab
 vFieldInfo.PutElement(2,1,0); //on affecte 2 (Colonne Excel N°2) à la ligne 1 colonne 0 du tab
 vFieldInfo.PutElement(2,1,1); //on affecte 2 (Format Texte = 2) à la ligne 1 colonne 1 du tab
 vFieldInfo.PutElement(3,2,0); //on affecte 3 (Colonne Excel N°3) à la ligne 2 colonne 0 du tab
 vFieldInfo.PutElement(4,2,1); //on affecte 4 (Format Date JMA = 4) à la ligne 2 colonne 1 du tab
 
 vMSExcel = Variant::CreateObject("Excel.Application");
 vMSExcel.OlePropertySet("Visible", true);
 vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
 vXLWorkbook = vXLWorkbooks.OleFunction("OpenText", vFileName.c_str(), vOrigin, vStartRow, vDataType, vTextQualifier, vConsecutiveDelimiter, vTab, vSemicolon, vComma, vSpace, vOther, vOtherChar, vFieldInfo);
Dernier problème : la sauvegarde de mon fichier :

Si je fais un :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
vXLWorkbook.OleProcedure("Save");
j'ai pas de pb à la compilation mais lors de l'éxecution, plantage sur cette ligne. Je pense que cela vient du fait de l'ouverture en mode texte et sauvegarde en mode Excel

Une dernière idée et je ne vous embête plus (du moins avec Excel !)

Xav