 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Nacho Invitado
|
Publicado: Lun 13 May, 2002 12:23 pm Asunto: Excel y Ole (Pregunta técnica) |
|
|
| He buscado por todos lados (de verdad que me he esforzado antes de poner este 'post')pero no he encontrado como poner una celda o un grupo de columnas o filas con el texto en vertical,... por Ole desde el C++Builde. Alguien me puede contestar o decir donde hay info para manejar de formas un poco mas avanzada el Excel desde Ole. |
|
| Volver arriba |
|
 |
_Leo Invitado
|
Publicado: Lun 13 May, 2002 3:11 pm Asunto: Excel y Ole (Pregunta técnica) |
|
|
| Hola Nacho: A ver si es esto lo que necesitas: code:
void __fastcall TForm1::Button1Click(TObject *Sender) { // Añadimos #include <Comobj.hpp> para BCB3,4,5 y 6 // o bien #include <oleauto.hpp> para BCB1 //--- Variant vExcel, vLibros, vHoja, vRango, vTemp; //--- Abre Excel vExcel = CreateOleObject("Excel.Application"); vExcel.Exec(PropertySet("Visible") << true); //--- Añade una nueva hoja y la selecciona vLibros = vExcel.Exec(PropertyGet("Workbooks")); vLibros.Exec(Procedure("Add")); vHoja = vExcel.Exec(PropertyGet("ActiveSheet")); //--- Escribe algo en varias celdas vRango = vHoja.Exec(PropertyGet("Range") << "A1:D5"); vRango.Exec(PropertySet("Value") << "texto"); //--- Giramos 90 grados el contenido de las dos primeras celdas vRango = vHoja.Exec(PropertyGet("Range") << "A1:B1"); vRango.Exec(PropertySet("Orientation") << 90); //--- Cambiamos algunos atributos de la fuente de la primera celda vRango = vHoja.Exec(PropertyGet("Range") << "A1"); vTemp = vRango.Exec(PropertyGet("Font")); vTemp.Exec(PropertySet("Color") << clRed); vTemp.Exec(PropertySet("Bold") << true); vTemp.Exec(PropertySet("Name") << "Impact"); vTemp.Exec(PropertySet("Size") << 24); //--- Cambiamos los colores de la segunda fila vRango = vHoja.Exec(PropertyGet("Range") << "A2:D2"); vTemp = vRango.Exec(PropertyGet("Interior")); vTemp.Exec(PropertySet("Color") << clLime); //--- Cambiamos el borde de la tercera fila vRango = vHoja.Exec(PropertyGet("Range") << "A3:D3"); vTemp = vRango.Exec(PropertyGet("Borders")); vTemp.Exec(PropertySet("Color") << clBlue); vTemp.Exec(PropertySet("Weight") << 4); //--- vExcel = vLibros = vHoja = vRango = vTemp = Unassigned; }
Saludos: _Leo PD: Probado en ExcelXP sobre WindowsXP con BCB1 y BCB6, aunque supongo que debe ir bien en cualquier versión. |
|
| Volver arriba |
|
 |
_Leo Invitado
|
Publicado: Lun 13 May, 2002 3:13 pm Asunto: Excel y Ole (Pregunta técnica) |
|
|
...aquí lo mismo, pero quizas un poco mas comodo de leer/trabajar si hay que cambiar muchas propiedades:code:
void ExcelCellSet(const Variant& hoja, String rango, String objeto, String propiedad, const Variant& valor) { Variant vTemp = hoja.Exec(PropertyGet("Range") << rango); if (!objeto.IsEmpty()) vTemp = vTemp.Exec(PropertyGet(objeto)); vTemp.Exec(PropertySet(propiedad) << valor); vTemp = Unassigned; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { // Añadimos #include <Comobj.hpp> para BCB3,4,5 y 6 // o bien #include <oleauto.hpp> para BCB1 //--- Variant vExcel, vLibros, vHoja; //--- Abre Excel vExcel = CreateOleObject("Excel.Application"); vExcel.Exec(PropertySet("Visible") << true); //--- Añade una nueva hoja y la selecciona vLibros = vExcel.Exec(PropertyGet("Workbooks")); vLibros.Exec(Procedure("Add")); vHoja = vExcel.Exec(PropertyGet("ActiveSheet")); //--- Escribe algo en varias celdas ExcelCellSet(vHoja, "A1:D5", "", "Value", "texto"); //--- Giramos 90 grados el contenido de las dos primeras celdas ExcelCellSet(vHoja, "A1:B1", "", "Orientation", 90); //--- Cambiamos algunos atributos de la fuente de la primera celda ExcelCellSet(vHoja, "A1", "Font", "Color", clRed); ExcelCellSet(vHoja, "A1", "Font", "Bold", true); ExcelCellSet(vHoja, "A1", "Font", "Name", "Impact"); ExcelCellSet(vHoja, "A1", "Font", "Size", 24); //--- Cambiamos los colores de la segunda fila ExcelCellSet(vHoja, "A2:D2", "Interior", "Color", clLime); //--- Cambiamos el borde de la tercera fila ExcelCellSet(vHoja, "A3:D3", "Borders", "Color", clBlue); ExcelCellSet(vHoja, "A3:D3", "Borders", "Weight", 3); //--- vExcel = vLibros = vHoja = Unassigned; }
|
|
| 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.
|