Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Word Dokument fernsteuern, Tutorial? (https://www.delphipraxis.net/40130-word-dokument-fernsteuern-tutorial.html)

JPSelter 11. Feb 2005 10:31


Word Dokument fernsteuern, Tutorial?
 
Ich habe ein Programm, das Besprechungs-Protokolle verwalten soll. Zum Ausdrucken eines Protokolls wollte ich die Daten an ein Word-Dokument übergeben, damit der Benutzer selbst noch kleinere Änderungen vornehmen kann, bevor gedruckt wird. Aber wie kann ich die Daten in ein Word-Dok übertragen? Ich habe sowas noch nie gemacht. Bisher habe ich erfolgreich die Befehle WordDocument1.Connect usw. angewandt, aber wie fülle ich das Dok mit Inhalt? Gibts sowas wie WordDocument1.AddTable und .AddText(kursiv,größe20) oder sowas ähnliches? Insgesamt brauche ich jede Menge Tabellen, eine davon beinhaltet eine Grafik.

Schuster 11. Feb 2005 10:48

Re: Word Dokument fernsteuern, Tutorial?
 
Vielleicht hilft dier der Link

JPSelter 11. Feb 2005 10:59

Re: Word Dokument fernsteuern, Tutorial?
 
Den Link hatte ich eben schon gefunden, aber da steht nicht viel drin. Ich bräuchte etwas umfangreicherers, z.B. eine komplette Dokumentation über dieses WordApplication.

Robert Marquardt 11. Feb 2005 11:11

Re: Word Dokument fernsteuern, Tutorial?
 
Die Hilfe zu TWordApplicaton etc ist in Word enthalten. Es ist die VBA-Hilfe zu Word.
Oeffne "Extras : Makros : Visual Basic Editor" dort "Ansicht : Objekt-Katalog" oeffnen bzw F2 druecken.
Das ist der COM-Objektbaum von Word. F1 liefert spezifische Hilfe.

JPSelter 11. Feb 2005 11:32

Re: Word Dokument fernsteuern, Tutorial?
 
OK, ich schau da mal rein. Ich habe jetzte "Hello World!" im Dokument stehen :D Aber nun möchte ich eine Tabelle erschaffen. Da läuft mir der Datentyp "Range" über den Weg, mit dem ich nichts anfangen kann. Hat jemand ein Beispiel, wie sowas aussieht? -> WordApplication1.Selection.Tables.Add(*range-datentyp*,2,2);

toms 11. Feb 2005 11:36

Re: Word Dokument fernsteuern, Tutorial?
 
Hi,

Habe hier einen Code, um ein TStringGrid in ein Worddokument zu exportieren.
(Hab's ohne die Server Komponente gemacht)
Vielleicht hilf's dir ja ein wenig weiter.

Delphi-Quellcode:
uses
  ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
  WordApp, NewDoc, tabelle: OLEVariant;
  iRows, iCols, iGridRows, jGridCols: Integer;
begin
  try
    // Word Instanz erzeugen
    WordApp := CreateOleObject('Word.Application');
  except
    // Fehler....
    Exit;
  end;

  // Word anzeigen
  WordApp.Visible := True;

  // Neues Dok einfügen
  NewDoc := WordApp.Documents.Add;

  // Spalten, Reihen ermitteln
  iCols := StringGrid1.ColCount;
  iRows := StringGrid1.RowCount;

  // Tabelle einfügen
  tabelle := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, iRows);

  // Tabelle ausfüllen mit Stringgrid Daten
  for iGridRows := 1 to iRows do
    for jGridCols := 1 to iCols do
      tabelle.Cell(iGridRows, jGridCols).Range.Text :=
        StringGrid1.Cells[jGridCols - 1, iGridRows - 1];

  // Hier evtl Word beenden...

  // Cleanup...
  WordApp := Unassigned;
  NewDoc := Unassigned;
  tabelle := Unassigned;
end;

JPSelter 11. Feb 2005 12:19

Re: Word Dokument fernsteuern, Tutorial?
 
Danke, das hilft mir sehr weiter :)

Trotzdem noch eine kleine Frage, vielleicht weiss es ja eben jemand: Wie kann ich die Tabellen-Grenzen grau machen, also so, dass sie nicht gedruckt werden?

toms 11. Feb 2005 12:28

Re: Word Dokument fernsteuern, Tutorial?
 
Zitat:

Zitat von JPSelter
Danke, das hilft mir sehr weiter :)

Trotzdem noch eine kleine Frage, vielleicht weiss es ja eben jemand: Wie kann ich die Tabellen-Grenzen grau machen, also so, dass sie nicht gedruckt werden?

Hmmm, bei mir werden gar keine Linien gezeigt..
Kannst aber mal das probieren:


Delphi-Quellcode:
const
{ wdLineStyleSingle = 1;}
 wdLineStyleNone = 0;
begin
   //...
  tabelle := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, iRows);
   //...
  tabelle.Borders.OutsideLineStyle := wdLineStyleNone ;
  tabelle.Borders.InsideLineStyle := wdLineStyleNone ;  //...

JPSelter 11. Feb 2005 12:40

Re: Word Dokument fernsteuern, Tutorial?
 
for i := 1 to 100000000 do
showmessage('Danke!');

:)

Robert Marquardt 11. Feb 2005 14:03

Re: Word Dokument fernsteuern, Tutorial?
 
Der zweite Trick ist es ein Word-Makro aufzuzeichnen und sich dann die Source im Makro-Editor anzuschauen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz