Hola compañeros
Yo aporto un trozo de código donde se abre un documento de word existente (como requiere Crack-neon) y sustituyo un "Marcador" del documento y después añado unos datos en columnas (mediante tabuladores). Al final de código intentaba convertir ese trozo del documento en una tabla, pero como me fallaba lo he borrado (y le he explicado al usuario como puede hacerlo él desde word.
Código Delphi
[-]
procedure TFConsultas.GenerarDocumentoWord;
var Fichero, SoloLectura, SalvarCambios, FormatoOriginal, Ruta, Marcador, Contenido : OleVariant;
MiDocumento : _document;
begin
try
MiWord.Connect;
except
ShowMessage('WordXP (o posterior) no está instalado en este equipo');
Abort;
end;
Fichero:='Z:\Informatica\delphi\Bomberos-Personal\Informe de un día.doc';
SoloLectura:=True;
MiDocumento:=MiWord.Documents.Open(Fichero, EmptyParam, SoloLectura,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
Marcador:='FechaTitulo';
Contenido:=FechaLiteral(Label2.Caption);
if MiDocumento.Bookmarks.Exists(Marcador) then MiDocumento.Bookmarks.Item(Marcador).Range.InsertBefore(Contenido);
MiDocumento.Paragraphs.Last.Range.Font.Size:=12;
ADOQuery1.First;
if ADOQuery1.RecordCount>0 then
While Not ADOQuery1.Eof do
begin
MiDocumento.Paragraphs.Last.Range.Text:=ADOQuery1.FieldByName('Apellidos').AsString+', '+ADOQuery1.FieldByName('Nombre').AsString+#9
+ADOQuery1.FieldByName('Categoria').AsString+#9
+wManiobras+wHorasExtras+wReduccion+wDiaLibre+wBaja+#9
+ADOQuery1.FieldByName('Observaciones').AsString+#13;
ADOQuery1.Next;
end;
MiWord.WindowState:=wdWindowStateMaximize;
MiWord.ActiveWindow.WindowState:=wdWindowStateMaximize;
MiWord.PrintPreview;
MiWord.Visible:=True;
SalvarCambios:=wdDoNotSaveChanges;
FormatoOriginal:=unAssigned;
Ruta:=unAssigned;
try
MiWord.Disconnect;
except
on e:Exception do
begin
ShowMessage('Se ha producido el error '+e.Message);
MiWord.Disconnect;
end;
end;
end;
Espero te sirva para algo.
Saludos