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:
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
Danke schonmal für Eure Antworten.