![]() |
Delphi -> MSWord, Tabelle zentrieren
Moin,
wollte mich mal vorstellen. Ich bin der Neue, ich komm jetzt öfter! ;-) So nun zu meinem Problem. Ich möchte die Daten aus einer DBGrid in eine Word Tabelle übertragen. Soweit funktioniert das ja aber nun ist die Tabelle nicht in der Mitte des Wordokument´s und ich krieg es nicht hin. Ich habe schon gesucht aber ich finde nur wie man den Text in der Tabelle zentriert und nicht die Tabelle selber! Hier mal der Code, meine Zentrierversuche hab ich mal raus genommem. ;-)
Delphi-Quellcode:
Danke schonmal für Eure Antworten.if radiogroup1.ItemIndex = 0 then begin ProgressBar1.Position:= 1; screen.Cursor := crHourglass; try // Word Instanz erzeugen WordApp:= CreateOleObject('Word.Application'); ProgressBar1.Position:= 2; except // Fehler.... ShowMessage('Word kann nicht gestartet werden'); Exit; end; // Spalten, Reihen ermitteln iCols := StringGrid1.ColCount; iRows := StringGrid1.RowCount; ProgressBar1.Position:= 3; // Neues Dokument einfügen NewDoc := WordApp.Documents.Add ; S:= WordApplication1.Selection; S.TypeText('Überschrift'); S.TypeParagraph; S.TypeParagraph; S.TypeParagraph; S.TypeParagraph; // Tabelle einfügen WordTable:= NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols); WordTable.Borders.OutsideLineStyle:= wdLineStyleSingle; WordTable.Borders.InsideLineStyle:= wdLineStyleSingle; ProgressBar1.Position:= 4; WordTable.Columns.Item(1).SetWidth(50, 0); WordTable.Columns.Item(2).SetWidth(50, 0); WordTable.Columns.Item(3).SetWidth(65, 0); WordTable.Columns.Item(4).SetWidth(120, 0); WordTable.Columns.Item(5).SetWidth(60, 0); WordTable.Columns.Item(6).SetWidth(200, 0); begin ProgressBar1.Max:= iRows; // Tabelle ausfüllen mit Daten von Stringgrid for iGridRows := 1 to iRows do begin ProgressBar1.Position:= 6+iGridRows; for jGridCols := 1 to iCols do begin WordTable.Cell(iGridRows, jGridCols).Range.Text:= StringGrid1.Cells[jGridCols - 1, iGridRows - 1]; end; end; end; // Word anzeigen WordApp.Visible:= true; ProgressBar1.Position:= 0; // Cleanup... WordApp := Unassigned; NewDoc := Unassigned; WordTable := Unassigned; end else |
Re: Delphi -> MSWord, Tabelle zentrieren
Na erst mal herzlich willkommen.
Was Word macht kriegt man am besten in Word raus. Zeiche ein Makro auf und zentriere dann eine Tabelle in Word. Danach schau dir die Makro-Source an. von da ab sollte es nicht zu schwierig sein das auf Delphi-Seite zu implementieren. |
Re: Delphi -> MSWord, Tabelle zentrieren
Danke für die Antwort. Das ging ja fix.
Wenns nach Word geht, müsste es so gehen:
Delphi-Quellcode:
Tut es aber nicht. Ich bekomme die Fehlermeldung: 'Tables' ist keine Methode
WordApp.Selection.Tables(1).Select;
WordApp.Selection.ParagraphFormat.Alignment:=wdAlignParagraphCenter; Hier im Forum hab ich gelesen das es so gehen müsste wie hier:
Delphi-Quellcode:
Tut er aber nur bedingt. Er zentriert nur den Text der in der Tabelle steht.
WordApp.Selection.Tables.Item(1).Select;
WordApp.Selection.ParagraphFormat.Alignment:=wdAlignParagraphCenter; |
Re: Delphi -> MSWord, Tabelle zentrieren
Moin,
ich habs mal anders gemacht. Mit folgender Zeile hab ich den linken Rand weiter nach links verschoben. Ist zwar nicht zentrieren in dem Sinne aber kommt aufs selbe raus. :wiejetzt:
Delphi-Quellcode:
Trotzdem Danke!
WordApp.Selection.PageSetup.LeftMargin:= 30;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz