Hallo,
ich habe folgende Codes bei gefunden...
Der hier "kopiert" ein Stringgrid in ein Worddokument.
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;
und spricht eine Textmarke an:
Delphi-Quellcode:
uses
ComObj;
procedure TForm1.Button1Click(Sender: TObject);
const
// Word Document to open
// Dein Word Dokument
YourWordDocument = 'c:\test\worddoc.doc';
var
BookmarkName, Doc, R: OleVariant;
begin
// Start a Word instance
// Word Instanz Starten
try
WordApp := CreateOleObject('Word.Application');
except
ShowMessage('Could not start MS Word!');
end;
// Open your Word document
// Dok. öffnen
WordApp.Documents.Open(YourWordDocument);
Doc := WordApp.ActiveDocument;
// name of your bookmark
// Name der Textmarke
BookmarkName := 'MyBookMark';
// Check if bookmark exists
// Überprüfen, ob Textmarke vorhanden
if Doc.Bookmarks.Exists(BookmarkName) then
begin
R := Doc.Bookmarks.Item(BookmarkName).Range;
// Add text at our bookmark
// Text bei Textmarke einfügen
R.InsertAfter('Text bei Textmarke');
// You make a text formatting like changing its color
// Man kann nun auch den Text formatieren. z.B die Farbe wechseln.
R.Font.Color := clRed;
end;
// Save your document and quit Word
// Dokument Speichern und Word beenden.
if not VarIsEmpty(WordApp) then
begin
WordApp.DisplayAlerts := 0;
WordApp.Documents.Item(1).Save;
WordApp.Quit;
BookmarkName := Unassigned;
R := Unassigned;
WordApp := Unassigned;
end;
end;
Nun zu meiner Frage: Wie bekomme ich es hin, dass das Stringgrid (Code1) in an die steller einer Textmarke(Code2) kopiert wird und nicht an den Dokumentenanfang?