Cohete propulsor caracterización, C++ Excel automatización, Boost propiedad árbol y el registrador de TC (6 / 8 paso)

Paso 6: Automatización de C++ de Excel...

TCLogger2Excel comenzó como una aplicación de línea de comandos de Windows, pero se convirtió en una aplicación basada de diálogo de MFC para agregar el cuadro de diálogo que se establece los valores por defecto en la sección de variables de cada hoja de cálculo de Excel. La ventaja de utilizar MFC es que es fácil! No es una biblioteca de interfaz de usuario perfecta, pero es muy fácil de usar. No cubre el código MFC en este Instructable, pero en su lugar se centrarán en explicar partes fundamentales del código que puede ser útil al escribir otros programas. El primero es tan cómo automatizar Excel desde C++.

En primer lugar con algunas palabras acerca de ambas opciones, C++ y Excel.

Excel fue seleccionado porque es una poderosa herramienta para la manipulación y visualización de datos. Gráficos de Excel hacen nuestros empuje y presión curvas visualmente comprensible. Las fórmulas de Excel en el a & n matemáticas de cubierta de la pestaña que está más allá de mi nivel de confort. Tomando el TC registrador datos grabados y ponerlo en Excel el usuario puede ahora manipular y realizar infinidad de cálculos y operaciones.

Por otro lado, C++ es mi lenguaje de programación de elección! No voy aburrirlos con un largo monólogo sobre sus virtudes o las faltas de otros lenguajes de programación. Sólo diré que como programador profesional de varias décadas, y en muchas plataformas, C++ proporciona más energía a la mayor conveniencia. Con lo que puede no sólo generar código nativo optimizado, pero con C++ moderno puedo utilizar las potentes funciones de la biblioteca estándar de C++ que rivalizan con los de cualquier otro lenguaje de programación, en cuanto a potencia, comprensibilidad y facilidad de uso.

Automatizar Excel desde C++

COM automatización facilita automatizar Microsoft Excel. Para comenzar hay que importar las bibliotecas de tipos de Excel como se muestra a continuación (de ExcelAutomation.cpp):

Esto hará que el compilador genere los archivos de encabezado (EXCEL.tlh y MSO.tlh) y archivos de aplicación (EXCEL.tli y MSO.tli) que simplifican el uso de los objetos de automatización COM que utilizaremos. Si abres los archivos .tlh encontrará una gran cantidad de información que será útil como realizar diversas tareas.

A continuación tenemos que crear una instancia del objeto application de Excel. El código siguiente se toma de la función CreateExcelSpreadsheet en ExcelAutomation.cpp...

El primer bloque configura el entorno de la COM y con clase de scope_exit de N4189, rasga abajo cuando aShutdown sale de alcance el final de la función:

El siguiente bloque veremos si el registro en este equipo tiene una entrada para Excel. No es una garantía que Excel está instalado pero es un buen comienzo:

Ahora creamos una instancia del objeto de Excel:

Con esta configuración en su lugar que podemos ahora crear hojas de trabajo, rellenar celdas, crear gráficos, y mucho más. Para ilustrar esto nos luego hacer visible la aplicación, crear un libro y maximizar la ventana de la aplicación.

pXLBook es el objeto de libro de Excel que vamos a utilizar a través del resto del programa.

La función (mal llamada) ProduceExcelWorkbook en ExcelAutomation.cpp siempre trabajará con la hoja de cálculo Excel activo:

Podemos dar la hoja de cálculo un nombre código como este:

Es importante tener en cuenta que los objetos de Excel con un nombre que termina en el Ptr como Excel::_WorksheetPtr son RAII C++ objetos similares a los ofrecidos por N4189. _bstr_t es también un objeto RAII. En pocas palabras eso significa que la memoria detrás de estos objetos automáticamente saldrá cuando la variable sale de alcance, incluso si eso sucede debido a una excepción. (Este último es un concepto que muchos programadores de C y C++ se olviden! Es muy importante utilizar RAII o asegurar lo contrario objeto limpiar cuando una excepción se desenrolla. Si bloquear una CRITICAL_SECTION usando por ejemplo EnterCriticalSection pero no LeaveCriticalSection cuando una excepción hace que el código para relajarse, tal vez incluso una excepción en algún lugar de una biblioteca de llamar, se escapará el bloqueo y será casi imposible detectar incluso bajo el depurador. Usted acabará con un callejón sin salida que no tiene sentido! Utilizar objetos RAII! La única alternativa es usar bloques try/finally para todos los recursos!)

Más adelante cuando necesitemos una nueva hoja de cálculo el código siguiente crea:

Con una hoja de cálculo activa, pueden colocar datos en una celda usando una función como esta de ExcelAutomation.cpp:

Observe que un "rango de celdas" (pDataRange) es creado y asignado un valor de cadena. También puede preparar una matriz SAFEARRAY de datos para asignar a un rango de celdas. Para ver cómo es esto mira ExcelAutomation.cpp líneas 270-397.

ExcelAutomation.cpp también muestra cómo agregar un gráfico a una hoja de cálculo (2 ejemplos diferentes), personalizar las etiquetas de tabla, agregar una línea de tendencia, las células de color, y cambiar tamaños de fuente de la etiqueta.

Un Consejo final... Si crea una macro en Excel y luego editarlo, verá código básico Visual que es muy fácil de convertir en C++ utilizando los ejemplos proporcionados en ExcelAutomation.cpp.

Artículos Relacionados

3D impreso embudos para el Motor del cohete propulsor Casting

3D impreso embudos para el Motor del cohete propulsor Casting

Motores de cohete de investigación son hechos por diversas fórmulas de propulsor compuesto perclorato del amonio (APCP) del bastidor en tubos - tubos de cartón generalmente a través del cual funciona un mandril para formar un núcleo. Una de las cosas
Estante de la esquina del cohete

Estante de la esquina del cohete

Vengo de una familia de ingenieros del espacio. Mi padre era un ingeniero de la NASA que pasó la mayor parte de mis años de formación lanzando cohetes hacia abajo en el cabo. Mientras estudiaba Ingeniería en la Universidad era un estudiante de coop p
Cómo hacer mini cohete lanzador de misil Bazooka propulsor sólido HD Video calidad

Cómo hacer mini cohete lanzador de misil Bazooka propulsor sólido HD Video calidad

seguir mi canal de youtube: http://www.youtube.com/user/educatetowin?feature=mheeSitio web: http://www.educatetube.comHost: SipskiComo hacer una bazooka de misil cohete mini launcher o propulsor sólido.  Siempre use gafas de seguridad y hacer el expe
Propulsor de cohete sólido simple

Propulsor de cohete sólido simple

fácil de hacer propulsor de cohete sólido del azúcar y nitrato de potasio. Más comúnmente conocido como caramelo de cohete.Como es la mayoría de las cosas que implican fuego - ser cuidadoso y hacer esto fuera con protección de la seguridad!Paso 1: ma
Motor del cohete CATO!

Motor del cohete CATO!

En la categoría de épicas fallas pocas cosas son tan dramáticas como un motor de cohete de fallar! (En la manía) llamamos a esto un CATO.Si sigues mis otros cohetes relacionadas con artículos de Instructable.com (como el uno en la fabricación de inye
Construir un inyector del cohete de alta potencia

Construir un inyector del cohete de alta potencia

Experimental alta energía Rocketry es un deporte extremo que ofrece fabricantes de una variedad de oportunidades para utilizar sus habilidades, obtener nuevos conocimientos y explorar... bueno, ciencia de cohetes! En este Instructable presentaré un m
Cohete marca estudios medio tanque

Cohete marca estudios medio tanque

se trata de las instrucciones de montaje para el tanque medio de Cohete marca Studios. Esto es un pequeño kit de la robusteza y puede adquirirse como kit completo o como un chasis rodante, listo para el micro controlador de su elección--Arudino Uno,
Cohete supersónico - Mach mi día!

Cohete supersónico - Mach mi día!

¿Quiere romper la barrera del sonido, pero no tiene un avión de $ 100 millones para jugar con?¿La fuerza aérea no quiere o no desea que la fuerza aérea?¡No hay problema! También puede jugar Tirada Yeager en un presupuesto mucho más bajo, incluso si n
Construir un cohete de Crayon

Construir un cohete de Crayon

si eres como yo, cualquier cosa que se parece a un tubo y llega a un punto se puede hacer en un cohete.  Lápices de colores ajuste esa descripción perfectamente, así que cuando encontré un banco gigante en forma de crayón en la tienda, sabía que su d
¿Soporte de exhibición de cohete - Simple del modelo

¿Soporte de exhibición de cohete - Simple del modelo

tienen un modelo de cohete, o tal vez está orgulloso de su hijo, pero no tiene una forma de mostrarlo?  ¿Es apoyado torpemente en una esquina, o atrapada en una posición vertical con algunos animales de peluche?  No todos los diseños de cohetes parar
Visco Fuse cohetes de botella

Visco Fuse cohetes de botella

este instructable le mostrará cómo hacer tus propios cohetes de botella mediante fusible de Visco como propulsor. Visco se puede comprar en muchas tiendas en línea. Compro mina de la tienda de venta por mayor de fuegos artificiales locales. No tomo n
Automatización de InDesign diseño gráfico

Automatización de InDesign diseño gráfico

Nadie puede moverse cajas en InDesign e Illustrator. Pero no todo el mundo puede utilizar las herramientas a su disposición para aumentar su flujo de trabajo y maximizar su tiempo.Automatización es la clave para crear grandes cantidades de trabajo co
Lanzador del cohete modelo de Arduino para 3D impreso cohetes

Lanzador del cohete modelo de Arduino para 3D impreso cohetes

Cuando yo era un niño, me encantaba jugar con cohetes Estes, así que decidí volver a la afición pero con todos mis skizzls del fabricante. Así que aquí está un lanzacohetes Arduino genial lanzamiento 3D impreso cohetes desde mi MakerBot Rep2! ¡ Disfr
Motor cohete

Motor cohete

Descargo de responsabilidad: Este es un proyecto peligroso utilizado sólo con fines educativos.  No tomar ninguna responsabilidad por ningún daño o perjuicio a usted o a equipos que se producen siguiendo este procedimiento.  Este proyecto debe tambié