FAQ C++ BuilderConsultez toutes les FAQ
Nombre d'auteurs : 60, nombre de questions : 670, dernière mise à jour : 21 novembre 2010 Ajouter une question
Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum C++ Builder de developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, contactez pottiez
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe C++ Builder de Developpez.
Commentez cette FAQ : Commentez
- Comment définir le nombre de feuilles par défaut lors de l'ouverture d'un classeur ?
- Comment récupérer l'ensemble des classeurs ouverts ?
- Comment ouvrir un fichier Excel ?
- Comment ouvrir un classeur en lecture seule ?
- Comment ouvrir un classeur au format csv ?
- Comment ouvrir un classeur protégé par un mot de passe ?
- Comment ajouter un nouveau fichier Excel ?
- Comment enregistrer mon classeur ?
- Comment enregistrer un classeur en lui attribuant un nom ?
- Comment fermer un classeur ?
- Comment récupérer un classeur dans un objet ?
- Comment connaître le nombre de classeurs ouverts ?
- Comment protéger ou déprotéger un classeur ?
- Comment mettre le calendrier depuis 1904 ?
A partir d'un Variant représentant l'instance d'Excel, nous allons définir la propriété SheetsInNewWorkbook.
Code c++ : | Sélectionner tout |
vMSExcel.OlePropertySet("SheetsInNewWorkbook", nbSheets);
A partir d'un Variant représentant l'instance d'Excel, nous allons récupérer l'ensemble des classeurs.
Code c++ : | Sélectionner tout |
1 2 | Variant vXLWorkbooks; vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks"); |
Nous allons ouvrir un classeur existant.
Code c++ : | Sélectionner tout |
1 2 3 4 | Variant vWorkbook; // vXLWorkbooks représente l'ensemble des classeurs // vFileName est un Variant sous la forme chaîne de caractères correspondant au fichier à ouvrir vXLWorkbook = vXLWorkbooks.OleFunction("Open",vFileName); // on récupère un Variant correspondant au classeur ajouté |
Nous allons ouvrir un classeur existant.
Code c++ : | Sélectionner tout |
1 2 3 4 5 | Variant vWorkbook, vReadOnly; // vXLWorkbooks représente l'ensemble des classeurs vReadOnly = true; // vFileName est un Variant sous la forme chaîne de caractères correspondant au fichier à ouvrir vWorkbook = vWorkbooks.OleFunction("Open", vFileName, Unassigned, vReadOnly); |
Nous allons ouvrir un classeur existant en spécifiant le séparateur recherché.
Code c++ : | Sélectionner tout |
1 2 3 4 5 | Variant vWorkbook; // vXLWorkbooks représente l'ensemble des classeurs // vFileName est un Variant sous la forme chaîne de caractères correspondant au fichier à ouvrir vWorkbook = vWorkbooks.OleFunction("Open", vFileName, Unassigned, Unassigned, vSeparator); // vSeparator = valeur du séparateur |
- 1 : tabulation
- 2 : point virgule
- 3 : espace
- 4 : point virgule
- 5 : aucun séparateur
Nous allons ouvrir un classeur existant protégé par mot de passe.
Code c++ : | Sélectionner tout |
1 2 3 4 5 | Variant vWorkbook; // vXLWorkbooks représente l'ensemble des classeurs vWorkbook = vWorkbooks.OleFunction("Open", vFileName, Unassigned, Unassigned, Unassigned, vPwd); // vFileName est un Variant sous la forme chaîne de caractères correspondant au fichier à ouvrir // vPwd = mot de passe |
Nous allons ajouter un nouveau classeur à notre ensemble de classeurs.
Code c++ : | Sélectionner tout |
1 2 3 | Variant vXLWorkbook; // vXLWorkbooks représente l'ensemble des classeurs vXLWorkbook = vXLWorkbooks.OleFunction("Add"); // on récupère un Variant correspondant au classeur ajouté |
L'objet cible est un Variant (vXLWorkbook) correspondant au classeur à sauver.
Code c++ : | Sélectionner tout |
vXLWorkbook.OleProcedure("Save");
L'objet cible est un Variant (vXLWorkbook) correspondant au classeur à sauver.
Code c++ : | Sélectionner tout |
1 2 | // vFileName est un Variant correspondant au nom du classeur vXLWorkbook.OleProcedure("Saveas", vFileName); |
FileFormat peut prendre différentes valeurs suivant le format de sauvegarde désiré, ce qui
permet de charger un fichier sous un format et de le sauvegarder sous un autre format
Code c++ : | Sélectionner tout |
1 2 3 4 | FileFormat = 6; // fichier CSV (extension .csv) FileFormat = -4158; //fichier Texte et separateur tabulation (extension .txt) FileFormat = 36; //fichier Texte et separateur espace (extension .prn) FileFormat = -4143; // valeur de xlNormal "sauvegarde sous format classeur excel" |
Description de la fonction complète
tous les paramètres de la sauvegarde sont décrits
Code c++ : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | Variants FileFormat, Mot_passe, Password, WriteResPassword, ReadOnlyRecommended; Variants vFileName, CreateBackup, Nom_Du_Fichier; // utiliser Unassigned si le paramètre n'est pas utilisé Mot_passe = Unassigned; //"Mon_Mot_De_Passe" pour la protection du fichier Password = Mot_passe; // mot de passe pour protéger le fichier WriteResPassword = Mot_passe; // confirmation du mot de passe ReadOnlyRecommended = false; // fichier en lecture seule (False True Unassigned) // création d'une copie si le fichier existe déjà CreateBackup = false; // création d'une copie (False True Unassigned) |
Nom_Du_Fichier = le nom du fichier avec extension .csv ou .txt ou.prn ou .xls
Code c++ : | Sélectionner tout |
1 2 3 | // sauvegarde du fichier sous le format desire vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\Nom_Du_Fichier"; vXLWorkbook.OleProcedure("Saveas", vFileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup); |
La version suivante ferme le classeur avec la possibilité d'avoir une confirmation par l'utilisateur en cas de modifications non enregistrées.
Code c++ : | Sélectionner tout |
vXLWorkbook.OleFunction("Close");
Code c++ : | Sélectionner tout |
vXLWorkbook.OleFunction("Close", vSaveChanges); // vSaveChanges est un booléen (ou un Variant contenant true ou false)
Code c++ : | Sélectionner tout |
vXLWorkbook.OleFunction("Close", true, vFileName);
Si le classeur n'est pas encore ouvert, il est plus aisé de récupérer cet objet lors de l'ouverture du classeur ou de l'ajout d'un nouveau classeur (cf. autres Q/R).
Sinon, il est possible de récupérer un objet sur un classeur à partir de l'objet gérant l'ensemble des classeurs.
Code c++ : | Sélectionner tout |
1 2 | vXLWorkbook = vXLWorkbooks.OlePropertyGet("Item", vIndex); // vIndex correspond à la "position" du classeur au niveau de l'application (indice commençant à 1) |
Code c++ : | Sélectionner tout |
1 2 3 4 | if (vXLWorkbooks.OlePropertyGet("Item", 1).OlePropertyGet("Name") == "monFichier.xls" ) { ... } |
Il suffit simplement d'interroger la propriété Count sur l'objet correspondant à l'ensemble des classeurs.
Code c++ : | Sélectionner tout |
1 2 | // vXLWorkbooks est de type Variant int nb = vXLWorkbooks.OlePropertyGet("Count"); |
La protection d'un classeur agit sur la structure et sur les feuilles (supprimer, renommer, déplacer les feuilles) de façon générale (le contenu n'étant pas protégé).
Dans la suite, le Variant vWorkbook correspond à un classeur.
Code c++ : | Sélectionner tout |
vWorkbook.OleProcedure("Protect", "motdepasse", true, true);
Pour supprimer la protection :
Code c++ : | Sélectionner tout |
vWorkbook.OleProcedure("UnProtect", "motdepasse");
L'objet cible est un Variant (vXLWorkbook) correspondant au classeur dont on souhaite modifier le paramétrage.
Code c++ : | Sélectionner tout |
vXLWorkbook.OlePropertySet("Date1904", true);
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.