Fusée à propergol caractérisation, Automation Excel C++, Boost propriété arbre et l’enregistreur de TC (6 / 8 étapes)

Étape 6: C++ Automation d’Excel...

TCLogger2Excel a commencé comme une application de ligne de commande de Windows, mais a été convertie en une application de base de la boîte de dialogue MFC afin d’ajouter la boîte de dialogue qui définit les valeurs par défaut dans la section variables de chaque feuille de calcul Excel. L’avantage de l’utilisation de MFC, c’est que c’est facile ! Il n’est pas une bibliothèque d’interface utilisateur parfaite, mais il est très facile à utiliser. Je vais pas couvrir le code MFC dans ce Instructable mais plutôt mettra l’accent sur l’explication des principales parties du code qui peuvent être utiles lors de l’écriture des autres programmes. Le premier exemple en est comment automatiser Excel de C++.

Tout d’abord quelques mots sur ces deux choix ici, C++ et Excel.

Excel a été choisi parce que c’est un outil puissant pour manipuler et afficher des données. Graphiques Excel faire nos courbes Poussée et pression visuellement compréhensible. Les formules d’Excel l’un & n mathématiques de la couverture de l’onglet qui dépasse de loin mon niveau de confort. En prenant le TC enregistreur de données enregistrées et plaçant dans Excel, l’utilisateur peut maintenant manipuler et effectuer d’innombrables calculs et opérations.

C++ est en revanche mon langage de programmation de choix ! Je ne vais pas vous ennuyer avec un long monologue sur ses vertus ou les fautes des autres langages de programmation. Je dirai simplement que comme un programmeur professionnel pendant plusieurs décennies, et sur de nombreuses plates-formes, C++ fournit le plus de pouvoir à la plus grande commodité. Avec elle que je peux non seulement générer du code natif optimisé, mais avec C++ modernes, je peux utiliser les puissantes fonctions de la bibliothèque Standard C++ qui rivalisent avec ceux de n’importe quel autre langage de programmation, en termes de puissance, clarté et facilité d’utilisation.

Automatisation d’Excel à partir de C++

COM Automation, il est facile automatiser Microsoft Excel. Pour commencer, vous devez importer les bibliothèques de types Excel comme indiqué ci-dessous (à partir de ExcelAutomation.cpp) :

Cela entraîne le compilateur à générer des fichiers d’en-tête (EXCEL.tlh et MSO.tlh) et les fichiers de mise en œuvre (EXCEL.tli et MSO.tli) qui simplifient l’utilisation des objets d’automatisation COM nous allons utiliser. Si vous ouvrez les fichiers .tlh, vous y trouverez une foule de renseignements qui vous seront utiles lors de l’exécution des tâches variées.

Ensuite, nous devons créer une instance de l’objet application Excel. Le code suivant provient de la fonction CreateExcelSpreadsheet dans ExcelAutomation.cpp...

Le premier bloc met en place l’environnement COM et à l’aide de la classe de scope_exit de N4189, il déchire vers le bas quand aShutdown est hors de portée à la fin de la fonction :

Le bloc suivant verra si le registre sur cet ordinateur possède une entrée pour Excel. Il n’est pas une garantie que Excel est installé, mais c’est un bon début :

Maintenant, nous créons une instance de l’objet Excel :

Avec cette configuration en place, que nous pouvons maintenant créer des feuilles de calcul, remplir des cellules, créer des graphiques, et beaucoup plus. Pour illustrer cela nous sera ensuite rendre l’application visible, créez un classeur et agrandissez la fenêtre de l’application.

pXLBook est l’objet de classeur Excel, que nous allons utiliser le reste du programme.

La fonction (mal nommée) ProduceExcelWorkbook en ExcelAutomation.cpp fonctionnera toujours avec la feuille de calcul Excel actif :

Nous pouvons donner la feuille de calcul à un nom de code comme ceci :

Il est important de noter que l’Excel avec un nom se terminant par Ptr comme Excel::_WorksheetPtr sont des objets C++ RAII semblables à ceux offerts par N4189. _bstr_t est également un objet RAII. En bref, cela signifie que la mémoire derrière ces objets sera automatiquement libérée lorsque la variable laisse place, même si cela arrive à cause d’une exception. (Cette dernière est un concept que beaucoup de programmeurs C/C++ oublie ! Il est très important d’utiliser RAII ou pour s’assurer objet nettoyage lorsqu’une exception se déroule ! Si vous verrouillez un CRITICAL_SECTION par exemple à l’aide de EnterCriticalSection mais ne parviennent pas à LeaveCriticalSection lorsqu’une exception provoque votre code pour vous détendre--peut-être même une exception quelque part dans une bibliothèque vous appelez, vous fuira la serrure et il sera presque impossible à détecter même sous le débogueur. Vous vous retrouverez avec un blocage qui n’a aucun sens ! Utilisez des objets RAII ! La seule alternative est d’utiliser des blocs try/finally pour chaque ressource!)

Plus tard lorsque nous avons besoin d’une nouvelle feuille de calcul le code suivant crée :

Avec une feuille de calcul active, les données peuvent être placées dans une cellule à l’aide d’une fonction comme celle de ExcelAutomation.cpp :

Notez qu’une "plage de cellules" (pDataRange) est créée et ensuite assignée une valeur de chaîne. Vous pouvez également préparer un SAFEARRAY de données pour affecter à une plage de cellules. Pour voir comment cela se fait regarder de ExcelAutomation.cpp lignes 270-397.

ExcelAutomation.cpp montre également comment ajouter un graphique à une feuille de calcul (2 différents exemples), personnaliser les étiquettes de graphique, ajouter une courbe de tendance, les cellules de couleur et changer les tailles de police d’étiquette.

Un dernier Conseil... Si vous créez une macro dans Excel et puis modifiez, vous verrez le code de base visuel qui est très facile de convertir en C++ en utilisant les exemples fournis dans ExcelAutomation.cpp.

Articles Liés

3D imprimé entonnoirs pour moteur-fusée à propergol Casting

3D imprimé entonnoirs pour moteur-fusée à propergol Casting

Recherche moteurs de fusée sont fabriqués par moulage différentes formules d'Ammonium Perchlorate Composite propergol (APCP) dans des tubes - tubes en carton habituellement à travers lequel un mandrin coule pour former un noyau. Une des choses plus u
Défi de fournitures Bureau - fusée à propergol liquide combustible

Défi de fournitures Bureau - fusée à propergol liquide combustible

fusée à propergol liquide combustible issu de fournitures de bureau. Attention, que c'est un peu dangereux, j'ai déjà un coup vers le haut dans ma main, il est plus surprenante que quoi que ce soit, les deux moitiés s'est envolé dans des directions d
Maison fusée à propergol et moteur

Maison fusée à propergol et moteur

j'aime vraiment et profitez de fusée estes, et j'ai décidé de faire moi-même.J'ai aussi fait le carburant et le moteur. Tout est fait avec les matériaux, vous pouvez facilement obtenir ou même avoir à votre maison dès maintenant.Ils peuvent aller jus
Vitesse de contrôleurs pour les Robots bon marchés, partie 2: le contrôleur PID

Vitesse de contrôleurs pour les Robots bon marchés, partie 2: le contrôleur PID

Hé ! C'est la deuxième partie d'un tutoriel en deux partie sur comment faire un variateur de vitesse d'un ressort de cap et plume de bouteille ! Si vous ne l'avez pas encore fait, consultez-le ! Si vous l'aimez, s'il vous plaît envisager de voter pou
Construire une buse de fusées haute puissance

Construire une buse de fusées haute puissance

Expérimental haute puissance Rocketry est un sport extrême qui offre à une variété de possibilités de thé à utiliser leurs compétences, d'obtenir de nouvelles compétences et explore... Eh bien, la science de fusée ! Dans ce Instructable je vais prése
Moteur-fusée CATO !

Moteur-fusée CATO !

Dans la catégorie des échecs épiques, peu de choses sont aussi spectaculaires qu'un propulseur défaillant ! (En le hobby), nous appelons cela un Caton.Si vous suivez mes autres fusées Instructable.com articles (comme celui sur l'apport des tuyères de
Lanceur d’Air comprimé et des fusées réutilisables

Lanceur d’Air comprimé et des fusées réutilisables

Ce projet utilise PVC, une vanne d'arrosage automatique, une pompe à vélo et quelques ustensiles pour faire un lance-roquettes et des roquettes avec des caractéristiques de vol comparables à étage unique passe-temps fusées avec moteurs à combustible
Lancement de fusées est un souffle !

Lancement de fusées est un souffle !

Hello!Dans ce Instructable je vais vous apprendre comment à lancer avec succès votre propre fusée et l'histoire complète de ma propre fusée. N'oubliez pas : fusées sont un amusant jouet lorsque manipulés avec soin, mais elles peuvent aussi être une a
Comment lancer une fusée dans l’espace: à l’intérieur de la partie 1 de la BURPG

Comment lancer une fusée dans l’espace: à l’intérieur de la partie 1 de la BURPG

Cela va être plus d'une entrée de blogg-ish sur le groupe de Propulsion fusée Boston University. Malheureusement, étant donné que nous construisons une fusée assez grande, les détails techniques sont un peu en catimini. Mais nous nous efforçons de se
Comment développer un caractère

Comment développer un caractère

Ce qui rend un personnage développé ?De la caractérisation de Truman Capote de Richard Hickock et Perry Edward Smith dans son roman historique, De sang-froid, ou le HBO série Vrai détectivedu détective Rustin "Rouille" de Cole (tel que joué par
Breaking apart texte à l’aide de Excel

Breaking apart texte à l’aide de Excel

cette instructable va vous montrer comment se défassent (dans le jargon informatique, analyser) texte à l'aide d'Excel. L'instructable vous fera découvrir certains des commandes gestion du texte dans Excel. Cette instructable reposera sur Excel 2007,
La fusée verte

La fusée verte

flèche est un passe-temps passionnant et un bon, aucun grand plan n'est toujours apprécié. J'ai commencé avec des fusées expérimentales en 2006 et ont depuis fait des trucs cool. Il wasn' t mon hobby majeur à l'époque, mais je suis rapidement tombé e
Simple moteur de fusée solide

Simple moteur de fusée solide

Ce Instructable n'est pas destiné à montrer une application pratique de carburant. Le carburant, que je vais montrer Voici une j'ai jouer avec beaucoup et utiliser pour la démonstration est de montrer aux gens les rudiments de la propulsion de fusées
Faire un propergol solide en laboratoire

Faire un propergol solide en laboratoire

Solid Rocket Fuel Ignition - musique d'un film drôle est un clic : Kevin MacLeod une fois utilisé comme combustible de fusées à propergol solide, car la réaction ne nécessite aucun oxygène. Soufre et zinc réagissent vigoureusement. La réaction avec l