Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

automatización word

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: automatización word Responder citando

Hola a todos,

Tengo el siguiente código con el que puedo insertar una tabla al final de mi documento word, pero al hacerlo las celdas me aparecen "invisibles", es decir, no tienen borde. Alguien sabría decirme cómo se le añade un borde a dichas celdas, y cómo puedo hacer para que sólo se vean las separaciones entre columnas pero no entre las filas?

El código es el siguiente;
Cita:

// Añadimos: #include <ComObj.hpp>

//--- Buscamos una instancia de Word abierta
Variant wordApp = GetActiveOleObject("Word.Application");

//--- Obtenemos el documento que esta activo
Variant wordDocument = wordApp.OlePropertyGet("ActiveDocument");

//--- Obtenemos la posicion del final del documento
Variant wordRange = wordDocument.OleFunction("Range");

wordRange.OleProcedure("Collapse", 0);

//--- Creamos la tabla
Variant wordTables = wordRange.OlePropertyGet("Tables");
int rows = 5, cols = 3;
Variant wordTable = wordTables.OleFunction("Add", wordRange, rows, cols);
Volver arriba
Mensaje    Asunto: Responder citando

A continuación de ese código puedes añadir lo siguiente (supongo que se entenderá viendo los comentarios, sino avísame):
Código:
// Tipos de borde (hay mas, mirar en la ayuda del Word)
enum { wdBorderVertical = -6, wdBorderHorizontal,
    wdBorderRight, wdBorderBottom, wdBorderLeft, wdBorderTop };

// Estilos de línea (hay mas, mirar en la ayuda del Word)
enum { wdLineStyleNone = 0, wdLineStyleSingle, wdLineStyleDot,
    wdLineStyleDashSmallGap, wdLineStyleDashLargeGap,
    wdLineStyleDashDot, wdLineStyleDashDotDot,
    wdLineStyleDouble, wdLineStyleTriple};

// Grosor de línea (hay mas, mirar en la ayuda del Word)
enum { wdLineWidth025pt = 2, wdLineWidth050pt = 4,
    wdLineWidth075pt = 6, wdLineWidth100pt = 8};

Variant borders = wordTable.OlePropertyGet("Borders");

//--- Añadimos el borde exterior de la tabla (opcional)
// borde izquierdo de la tabla
Variant border = borders.OleFunction("Item", wdBorderLeft);
border.OlePropertySet("LineStyle", wdLineStyleSingle);
border.OlePropertySet("LineWidth", wdLineWidth100pt);
// borde superior
border = borders.OleFunction("Item", wdBorderTop);
border.OlePropertySet("LineStyle", wdLineStyleSingle);
border.OlePropertySet("LineWidth", wdLineWidth100pt);
// borde derecho
border = borders.OleFunction("Item", wdBorderRight);
border.OlePropertySet("LineStyle", wdLineStyleSingle);
border.OlePropertySet("LineWidth", wdLineWidth100pt);
// borde inferior
border = borders.OleFunction("Item", wdBorderBottom);
border.OlePropertySet("LineStyle", wdLineStyleSingle);
border.OlePropertySet("LineWidth", wdLineWidth100pt);

//--- Añadimos las líneas de separación entre columnas
border = borders.OleFunction("Item", wdBorderVertical);
border.OlePropertySet("LineStyle", wdLineStyleSingle);
border.OlePropertySet("LineWidth", wdLineWidth025pt);
// opcionalmente, color, etc.
//border.OlePropertySet("Color", clRed);
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.