Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Automatizacion de word (insertar tablas) (https://www.clubdelphi.com/foros/showthread.php?t=26745)

alt126 02-11-2005 13:50:51

Automatizacion de word (insertar tablas)
 
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

Problema solucionado...
 
Para meter una tabla seria asi:

Cita:

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:

Cita:

//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.

Cita:

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


La franja horaria es GMT +2. Ahora son las 05:46:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi