 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Jue 05 Feb, 2009 1:13 pm Asunto: Tamaño de tabla en word |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Dom 08 Feb, 2009 4:11 am Asunto: |
|
|
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 |
|
 |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Lun 09 Feb, 2009 10:09 am Asunto: |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 09 Feb, 2009 6:59 pm Asunto: |
|
|
| Código: | Seleccion.OleProcedure("EndKey", 6 /*wdStory*/);
Seleccion.OleProcedure("TypeParagraph");
Seleccion.OleProcedure("TypeText", "otra estadistica");
|
|
|
| Volver arriba |
|
 |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Mar 10 Feb, 2009 10:29 am Asunto: |
|
|
Gracias de nuevo, funciona como es de esperar
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 10 Feb, 2009 3:04 pm Asunto: |
|
|
| Código: | const wdAlignRowLeft = 0, wdAlignRowCenter = 1, wdAlignRowRight = 2;
Tabla.OlePropertyGet("Rows").OlePropertySet("Alignment", wdAlignRowCenter); |
|
|
| Volver arriba |
|
 |
zankiu Lt Cmdr

Registrado: 23 Ene 2008Mensajes: 106
|
Publicado: Mar 10 Feb, 2009 4:28 pm Asunto: |
|
|
Gracias una vez más _Leo. vamos... ni me he acercado  |
|
| 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.
|