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 

Formato en texto Word

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Formato en texto Word Responder citando

Hola

Quiero utilizar Automation para generar unos documentos en Word, pero no se como darle formato al texto. Font Name y Size, negrita, cursiva, etc; Alineado de parrafo, y ademas necesito saber como puedo ejecutar Buscar y Remplazar
Lo que pude hacer es esto:

Variant wd;

wd = CreateOleObject("Word.Basic");

wd.Exec(Procedure("AppShow"));
wd.Exec(Procedure("FileNew") << "Normal");
wd.Exec(Procedure("Font") << "Arial");
wd.Exec(Procedure("FormatFont") << "12");
wd.Exec(Procedure("Insert") << "Hola Mundo\n");
wd = NULL;

Volver arriba
Mensaje    Asunto: Formato en texto Word Responder citando

Hola, nuevamente envio las dudas sobre Automation en word.
Por favor una ayuda
Saludos
TJOSE
Volver arriba
Mensaje    Asunto: Formato en texto Word Responder citando

Tal vez te sirva esto ya que permite reemplazar texto en word, lo copie hace dias en un foro (probablente este)
//*****************************************
"Esta función permite sustituir texto dentro de un documento de Word.
La ventaja es que usamos enlace tardío, con lo que no tenemos que complicarnos
instalando componentes ni librerías.
Seria útil por ejemplo para crear reportes sencillos usando Word. Por ejemplo,
podemos sustituir "{{nombre}}" por "Pepito de los palotes". Además se mantiene
el formato que le hayamos dado al texto que vamos a sustituir.

Lo primero es añadir el siguiente código al comienzo de nuestro modulo:"


code:
--------------------------------------------------------------------------------

#if (__BORLANDC__ >= 0x0530)
#include <Comobj.hpp>#else
#include <oleauto.hpp> // BCB 1#endif

--------------------------------------------------------------------------------

y a continuación para probarlo añadimos un TButton y dentro de su evento
OnClick metemos el siguiente código:


Variant vWord, vDocumentos, vDocumento, vSeleccion, vBuscar;
String sPath = ExtractFilePath( Application->ExeName );
String sFicheroPlantilla = sPath + "plantilla.doc";
String sFicheroGenerado = sPath + "plantilla2.doc";


//--- Abre Word
vWord = CreateOleObject( "Word.Application" );
vWord.OlePropertySet( "Visible", !checkGuardar->Checked );

//--- Abre el documento que usaremos como plantilla
vDocumentos = vWord.OlePropertyGet( "Documents" );
vDocumento = vDocumentos.OleFunction( "Open",
sFicheroPlantilla.c_str(), // Documento
false, // Confirmar conversiones
true, // Modo se solo lectura
false, // Añadir al menu de ficheros recientes
"" // Clave del documento
);

//--- Selecciona todo el documento para reemplazar
vSeleccion = vWord.OlePropertyGet( "Selection" );
vSeleccion.OlePropertyGet( "Range" ).OleProcedure( "SetRange", 0, 0 );
vBuscar = vSeleccion.OlePropertyGet( "Find" );
vBuscar.OleProcedure( "ClearFormatting" );
vBuscar.OlePropertyGet( "Replacement" ).OleProcedure( "ClearFormatting" );

//--- sustituimos una palabra
// Aqui podemos meter el bucle que va a ir reemplanzando palabras
vBuscar.Exec( Procedure( "Execute" )
<< "{{nombre}}" // Texto a buscar
<< VT_EMPTY // Coincidir mayusculas y minusculas
<< VT_EMPTY // Solo palabras completas
<< VT_EMPTY // Usar caracteres comodin
<< VT_EMPTY // Suena como
<< VT_EMPTY // Todas las formas de la palabra
<< true // Hacia adelante
<< VT_EMPTY // Wrap
<< VT_EMPTY // Format
<< Edit1->Text.c_str() // Reemplazar con...
<< 2 // 2 = reemplazar todo
);

//--- sustituimos otra palabra
vBuscar.Exec( Procedure( "Execute" ) << "{{direccion}}"
<< VT_EMPTY << VT_EMPTY << VT_EMPTY << VT_EMPTY << VT_EMPTY
<< true << VT_EMPTY << VT_EMPTY << Edit2->Text.c_str() << 2 );
//--- salvamos automaticamente si procede y cerramos Word
if ( checkGuardar->Checked )
{
vDocumento.OleProcedure( "SaveAs", sFicheroGenerado.c_str() );
vDocumento.OleProcedure( "Close", 0xFFFFFFFF);
vWord.OleProcedure( "Quit" );

ShowMessage("Documento generado.");
}

vWord = vDocumentos = vDocumento = vSeleccion = vBuscar = Unassigned;

Volver arriba
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.