AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid nach Word - Formatierung?

Ein Thema von capo · begonnen am 28. Jan 2009 · letzter Beitrag vom 4. Feb 2009
Antwort Antwort
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#1

Stringgrid nach Word - Formatierung?

  Alt 28. Jan 2009, 13:25
Ist es möglich einzelne Sätze des übertragenen Stringgrids zu formatieren?

Delphi-Quellcode:
uses
  ComObj;

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

  // Show Word
  // Word anzeigen
  WordApp.Visible := True;

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

  // Get number of columns, rows
  // Spalten, Reihen ermitteln
  iCols := StringGrid1.ColCount;
  iRows := StringGrid1.RowCount;

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

  // Fill up the word table with the Stringgrid contents
  // Tabelle ausfüllen mit Stringgrid Daten
  for iGridRows := 1 to iRows do
    for jGridCols := 1 to iCols do
      WordTable.Cell(iGridRows, jGridCols).Range.Text :=
        StringGrid1.Cells[jGridCols - 1, iGridRows - 1];

  // Here you might want to Save the Doc, quit Word...
  // Hier evtl Word Doc speichern, beenden...

  // ...
  
  // Cleanup...
  WordApp := Unassigned;
  NewDoc := Unassigned;
  WordTable := Unassigned;
end;
Hotte
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Stringgrid nach Word - Formatierung?

  Alt 28. Jan 2009, 13:33
Ja. Für Details lass dir den Foramtierungsvorgang in Word aufzeichnen und schau dir den erzeugten VBA Code an
Markus Kinzler
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Stringgrid nach Word - Formatierung?

  Alt 28. Jan 2009, 13:36
Hallo...das funktioniert ja, weiß ich.

Es soll aber gleich beim übertragen vom Stringgrid nach Word bestimmte Wörter oder Sätze formatiert werden!
Beispiel:
Im Text des Stringgrids steht irgendwo: "Hurz- das LAmm".
Dieser Text soll in Word Fett angezeit werden.
Hotte
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Stringgrid nach Word - Formatierung?

  Alt 28. Jan 2009, 13:44
Einen String nach bestimmten Wörtern zu durchsuchen sollte kein Problem darstellen.
Oder was ist genau dein Problem/Frage?
Markus Kinzler
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Stringgrid nach Word - Formatierung?

  Alt 28. Jan 2009, 13:47
Stimmt, da hast du Recht.
Ich bin immer nur von der Möglichkeit ausgegangen das gesuchte zu formatierende Wort gleich bei der Übertragung zu formatieren.
Ich kann es evtl. ja auch im Nachhinein in Word formatieren.
Obwohl der Vorgang dann noch länger dauern wird und ich gerade auch nicht weiß wie das geht.
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Stringgrid nach Word - Formatierung?

  Alt 28. Jan 2009, 15:22
Meine Frage war aber eher so gemeint dass während mein Code nach Word kopiert bestimmte Wörter (direkt beim einfügen in Word)formatiert werden, nicht im Nachhinein.
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Stringgrid nach Word - Formatierung?

  Alt 31. Jan 2009, 17:10
Das Einfügen in das Worddokument über das Stringgrid funktioniert ja.

Im Nachinein könnte die Formatierung im Worddokument hinbekommen, nachdem das Stringgrid schon eingefügt wurde.
aber quasi während der Übertragung bevor das Stringgrid in das Worddokument eingefügt wird ist das Problem.

Wie würdet ihr das machen?
Habt ihr evtl ein praktisches Beispiel für mich?

Suchende Grüße
Capo
Hotte
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Stringgrid nach Word - Formatierung?

  Alt 2. Feb 2009, 23:39
Hallo...ich brauche wirklich mal ein Feedback und auch ein praktisches Besipiel.
Lasst mich nicht hängen!
Hotte
  Mit Zitat antworten Zitat
ThoPos

Registriert seit: 30. Jun 2004
Ort: Köln
69 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

Re: Stringgrid nach Word - Formatierung?

  Alt 3. Feb 2009, 14:06
Hallo Capo,

ich hatte mal ein ähnliches Problem, nur Hoch-/Tiefstellung anstatt Fett.

Dieses Beispiel schreibt an die Textmarke "Position" die Zeichenfolge "Zeichenfolge", dabei werden alle Ziffern tiefgestellt.
(Die Routine geht davon aus, daß Word bereits läuft und das Dokument bereits geladen ist.)

Delphi-Quellcode:
Procedure DatenNachWord(Position, Zeichenfolge: String)
var
  wrd : OLEVAriant;
  doc : OLEVAriant;
  bkm : OLEVAriant;
  n : String;
  j : Integer;
  ...
begin
  wrd := GetActiveOLEObject('Word.Application'); // mit aktuellem Word verbinden
  doc := wrd.activedocument; // mit aktivem Dokument verbinden
  ...
  bkm := doc.bookmarks.Item(Position).Range.Select; // Textmarke suchen und selektieren
  wrd.selection.TypeText(Zeichenfolge); // Text an selektierter Position schreiben
  wrd.selection.MoveLeft(1, Length(Zeichenfolge), 1); // eingefügten Text wieder selektieren
  doc.bookmarks.add(Position, wrd.selection.range); // Textmarke neu festlegen
  bkm := doc.bookmarks.Item(Position).Range.Select; // Textmarke (sicherheitshalber) neu selektieren, evtl. ist diese Zeile überflüssig !!!
  wrd.selection.moveleft( 1 , 1, 0); // An den Anfang des selektierten Textes gehen
  n := Zeichenfolge; // Text in eine Variable holen
  If n <> 'Then // Leere Zeichenfolge ?
    for j := 1 to Length(n) do
    begin
      wrd.Selection.moveRight(1, 1, 1); // Ein Zeichen nach rechts auswählen
      If ((n[j] >= '0') And (n[j] <= '9')) Then // Zeichen abfragen
        wrd.Selection.Font.Subscript := True // hochstellen
      Else
        wrd.Selection.Font.Subscript := False; // nicht hochstellen
    end;
  ...
end;
Du müßtest IMHO nur wenig anpassen.

Gruß aus Köln
Thomas
Thomas
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Stringgrid nach Word - Formatierung?

  Alt 4. Feb 2009, 09:29
DANKE!!!!!!!
Hotte
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr.
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