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 

Tamaño de tabla en word

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Tamaño de tabla en word Responder citando

Hola de nuevo, estoy buscando cómo cambiar el tamaño de las tablas en word, es decir, el ancho y el alto de las celdas y demás.

Con este hilo:
https://cppbuilder.es/viewtopic.php?t=10141&highlight=word
se hace los bordes visibles, pero para manipular el tamaño de la tabla?

Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Continuando con el ejemplo del enlace que mencionas:
Código:
// Necesitaremos la siguiente función:
inline float MmToPoints(float mm) {return mm * 2.83464567;}
Código:
        // Cambiamos el ancho de la primera columna a 5 cm.
    Variant columns = wordTable.OlePropertyGet("Columns");
    Variant column = columns.OleFunction("Item", 1 /*Nº.columna*/);
    column.OlePropertySet("Width", MmToPoints(50));

        // Cambiamos el alto de la primera fila a 2 cm.
    Variant rows = wordTable.OlePropertyGet("Rows");
    Variant row = rows.OleFunction("Item", 1 /*Nº.fila*/);
    row.OlePropertySet("Height", MmToPoints(20));
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias por la ayuda.

y si ahora quiero escribir una línea de texto después de la tabla? tengo hecho este trozo de código:

Código:
//Creamos la tabla
 Tablas = Rango.OlePropertyGet("Tables");
 int rows = 12, cols = 3;
 //Tabla de 5filasx3col
 Tabla = Tablas.OleFunction("Add", Rango, rows, cols);

 // 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};

 borders = Tabla.OlePropertyGet("Borders");

 //Añadimos el borde exterior de la tabla (opcional)
 // borde izquierdo de la tabla
 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);

 //Añadimos las líneas de separación entre filas
 border = borders.OleFunction("Item", wdBorderHorizontal);
 border.OlePropertySet("LineStyle", wdLineStyleSingle);
 border.OlePropertySet("LineWidth", wdLineWidth025pt);

 // Cambiamos el ancho de la primera columna a 5 cm. (50)
 Variant columns = Tabla.OlePropertyGet("Columns");
 for (int i=0; i<cols; i++)
 {
  Variant column = columns.OleFunction("Item", i+1 /*Nº.columna*/);
  column.OlePropertySet("Width", MmToPoints(25));
 }

//Añadimos texto en las celdas

 Variant wordCell, wordFont;

 //RangoTabla = Tabla.OlePropertyGet("Range");
 for (int i=0; i<cols; i++)
 {
  for (int j=0; j<rows>StringGridEstadProto->Cells[i][j].c_str());
   
  }
 }


y si ahora le añado:
Código:

/*
 //Obtenemos la posicion del final del documento
 Rango = Documento.OleFunction("Range");
 Rango.OleProcedure("Collapse", 0);

 Rango = Seleccion.OlePropertyGet("Range");
 Rango.OleProcedure("TypeParagraph");
 Rango.OleProcedure("TypeText", "otra estadistica");
 */


o esto:
Código:

 /*
 Seleccion = Word.OlePropertyGet("Selection");
 Seleccion.OleProcedure("TypeParagraph");
 Seleccion.OlePropertyGet("Font").OlePropertySet("Color",clBlue);
 Seleccion.OlePropertyGet("Font").OlePropertySet("Size",14);
 Seleccion.OleProcedure("TypeText", "Estadísticas TCP");
 */


No inserta el texto tras la table sino antes. ¿cómo sería?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Código:
Seleccion.OleProcedure("EndKey", 6 /*wdStory*/);

Seleccion.OleProcedure("TypeParagraph");
Seleccion.OleProcedure("TypeText", "otra estadistica");
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias de nuevo, funciona como es de esperar Smile

Otra cosita sobre las tablas, cómo puedo centrarlas en el documento word?

He probado esto:

Código:
Tablas = Rango.OlePropertyGet("Tables");
Tablas.OlePropertySet("Alignment",taCenter);


Pero al ejecutar la aplicación ocurre una excepción de "nombre desconocido".
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Código:
const wdAlignRowLeft = 0, wdAlignRowCenter = 1, wdAlignRowRight = 2;
Tabla.OlePropertyGet("Rows").OlePropertySet("Alignment", wdAlignRowCenter);
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias una vez más _Leo. vamos... ni me he acercado Confused
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.