 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
maescudero1 Cdt

Registrado: 21 Nov 2005Mensajes: 8
|
Publicado: Vie 27 Abr, 2007 9:02 am Asunto: Manipular Excel |
|
|
Esta es el magnífico post de recopilación sobre la manipulación de ficheros Excel:
https://cppbuilder.es/viewtopic.php?t=8236&sid=a9cd415509890836b23d603395df0cad
Ahora bien, para los que queramos generar un fichero Excel más avanzado aún, ¿qué debemos hacer?
Por ejemplo,
1.- Realizar una línea vertical u horizontal.
2.- Centrar el texto en el recuadro o desplazarlo.
3.- Unir celdas.
4.- Aunmentar/Disminuir el ancho de las columnas y/o filas.
En definitiva, ¿dónde podría encontrar un manual con todas las propiedades de un fichero Excel que permita modificar Borland C++ (función PropertySet)? |
|
| Volver arriba |
|
 |
rayder Master

Registrado: 03 Mar 2004Mensajes: 207
|
Publicado: Lun 30 Abr, 2007 9:26 am Asunto: |
|
|
Principalmente, toda la información la tienes en el fichero de ayuda de excel correspondiente a tu versión. Yo uso el office 2000 profesional y el fichero que contiene la ayuda es el XLMAIN9.CHM. El único problema que puedes tener es con los ejemplos, ya que estos vienen para visual basic, pero los objetos, métodos y demas son los mismos.
Haber si estos ejemplos te sirven; pero ten en cuenta que todo está en este mismo foro.
| Cita: | | 1.- Dibuja un cuadrado. |
| Código: |
//-------- Dibuja una línea horizontal superior en color negro
VRange = xlSheet.Exec(PropertyGet("Range") << "B12:E12");
VTemp = VRange.Exec(PropertyGet("Borders") << 8);
VTemp.Exec(PropertySet("Color") << clBlack);
VTemp.Exec(PropertySet("Weight") << 2);
//-------- Dibuja una línea vertical a la izquierda en color negro
VRange = xlSheet.Exec(PropertyGet("Range") << "B12:B20");
VTemp = VRange.Exec(PropertyGet("Borders") << 7);
VTemp.Exec(PropertySet("Color") << clBlack);
VTemp.Exec(PropertySet("Weight") << 2);
//-------- Dibuja una línea vertical a la derecha en color negro
VRange = xlSheet.Exec(PropertyGet("Range") << "F12:F20");
VTemp = VRange.Exec(PropertyGet("Borders") << 7);
VTemp.Exec(PropertySet("Color") << clBlack);
VTemp.Exec(PropertySet("Weight") << 2);
//-------- Dibuja una línea horizontal inferior en color negro
VRange = xlSheet.Exec(PropertyGet("Range") << "B21:E21");
VTemp = VRange.Exec(PropertyGet("Borders") << 8);
VTemp.Exec(PropertySet("Color") << clBlack);
VTemp.Exec(PropertySet("Weight") << 2);
|
| Cita: | | 2.- Centrar el texto en el recuadro o desplazarlo. |
| Código: |
VRange = xlSheet.Exec(PropertyGet("Range") << "B15");
VRange.Exec(PropertySet("Value") << "EJEMPLO ");
VTemp = VRange.Exec(PropertyGet("Font"));
VTemp.Exec(PropertySet("Bold") << true);
VTemp.Exec(PropertySet("Size") << 12);
VRange.Exec(PropertySet("HorizontalAlignment") << -4152 /*xlHAlignCenter*/);
//Otros valores para la alineación horizontal:
//xlHAlignCenter = -4108, xlHAlignCenterAcrossSelection = 7,
//xlHAlignDistributed = -4117, xlHAlignFill = 5, xlHAlignGeneral = 1,
//xlHAlignJustify = -4130, xlHAlignLeft -4131, xlHAlignRight = -4152
|
| Código: |
//--- Usamos una instancia de Excel abierta y la hoja que este activa
Variant excel = GetActiveOleObject("Excel.Application");
//--- Unimos las celdas A1 y A2
Variant worksheet = excel.OlePropertyGet("ActiveSheet");
Variant range = worksheet.OlePropertyGet("Range", "A1:A2");
range.OleProcedure("Merge");
|
Me gustaria comentar que mucho de lo que aquí he expuesto son enseñanzas de _Leo, a él todo mi agradecimiento por el tiempo dedicado, un saludo para ti _Leo. _________________ Un saludo
Rayder |
|
| Volver arriba |
|
 |
maescudero1 Cdt

Registrado: 21 Nov 2005Mensajes: 8
|
Publicado: Lun 07 May, 2007 12:20 pm Asunto: |
|
|
Gracias MIL.
Pero quedan dos cuestiones:
1.- Unir celda usando las funciones Exec, PropertyGet; y no las Ole. Realmente necesito el equivalente de la línea de código:
rango.OleProcedure("Merge");
NOTA: Tal vez no exista "Merge".
2.- Modificar el ancho de las columnas.
Un saludo.
P.D.: Hablas de posts donde se resuelven estas dudas, ¿podrías direccionármelos? Los más destacados que he encontrado se encuentran en el enlace que escribí arriba y, estas dos cuestiones que planteo no me las resuelven. |
|
| Volver arriba |
|
 |
rayder Master

Registrado: 03 Mar 2004Mensajes: 207
|
Publicado: Jue 10 May, 2007 9:17 am Asunto: |
|
|
Buscando por el foro con la palabra "Excel" me salen 277 concordancias, a esos post me refiero, no obstante, te dejo lo que estas buscando.
| Cita: |
1.- Unir celda usando las funciones Exec, PropertyGet; y no las Ole. |
| Código: |
//--- Unimos las celdas A1 y A2
//--- Usamos una instancia de Excel abierta y la hoja que este activa
Variant excel = GetActiveOleObject("Excel.Application");
Variant worksheet = excel.OlePropertyGet("ActiveSheet");
VRange = worksheet.Exec(PropertyGet("Range") << "A1:A2");
VTemp = VRange.Exec(PropertySet("MergeCells") << true);
|
| Cita: | | 2.- Modificar el ancho de las columnas. |
| Código: |
//-------- Modificar el ancho de una columna
VRange = xlSheet.Exec(PropertyGet("Columns") << "G");
VRange.Exec(PropertySet("ColumnWidth") << 20);
|
Como ya he comentado, todo lo aquí expuesto lo he sacado del fichero de ayuda de excel. _________________ Un saludo
Rayder |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|