PDA

Ver la Versión Completa : Automatizacion de word (insertar tablas)


alt126
02-11-2005, 13:50:51
Estoy intentando meter una tabla de manera automatica desde c++ en word...estoy probando este codigo...pero ni me escribe nada en las celdas (deberia), ni me aparece si le doy una vista previa, aunque en diseño si aparece:



Código:
Variant Selection = WordApp.OlePropertyGet("Selection"); Variant selRange = Selection.OlePropertyGet("Range"); Variant docTables = WordDoc.OlePropertyGet("Tables"); docTables.OleFunction("Add", selRange, (Variant) 1, (Variant) 6); // Address the table Variant docTable1 = docTables.OleFunction("Item", (Variant) 1); // Update some cells Variant tableCell = docTable1.OleFunction("Cell", (Variant) 1,(Variant) 1); Variant cellRange = tableCell.OlePropertyGet("Range"); cellRange.OlePropertySet("Text", (Variant) "1-1"); tableCell = docTable1.OleFunction("Cell", (Variant) 1, (Variant) 2); cellRange = tableCell.OlePropertyGet("Range"); cellRange.OlePropertySet("Text", (Variant) "1-2");
GRACIAS

Un saludo

Antonio

alt126
03-11-2005, 10:14:20
Para meter una tabla seria asi:


Variant TablasWord= WordDoc.OlePropertyGet("Tables");
Variant selRange = Selection.OlePropertyGet("Range");
//Con la siguiente linea creamos una tabla, con 1 fila y 4 columnas, visible
//y ancho fijo.
Variant NuevaTabla= TablasWord.OleFunction("Add", selRange, (Variant) 1,(Variant) 4, (Variant) 1, (Variant) 0);

Y para meter datos en la tabla:


//Seleccionamos la tabla sobre la que queremos escribir.
Variant Tabla1= TablasWord.OleFunction("Item", (Variant) 1);
//Seleccionamos la fila y columna (1,1)
Variant tableCell = Tabla1.OleFunction("Cell", (Variant) 1,(Variant) 1);
Variant cellRange = tableCell.OlePropertyGet("Range");
//Escribimos el valor que queramos.
cellRange.OlePropertySet("Text", (Variant) "1-1");

Por si le sirve a alguien.

Un saludo

Antonio

alt126
04-11-2005, 10:44:29
A ver si alguien sabe como centrar una tabla...pq desde el word, intento grabar una macro centrando una tabla...pero no me deja seleccionar la tabla...

el codigo es el siguiente y lo que hace es crear una tabla pero alineada a la ezqueirda y yo quiero centrarla.


Tablas_Word = Documento_Word.OlePropertyGet("Tables");
Nueva_Tabla = Tablas_Word.OleFunction("Add", Rango, (Variant) 1,(Variant) 1, (Variant) 1, (Variant) 1);

Gracias

Un saludo

Antonio