Einzelnen Beitrag anzeigen

nico44

Registriert seit: 7. Mär 2003
20 Beiträge
 
#1

stringgrid nach MS Word Problem

  Alt 12. Apr 2007, 10:11
hallo Leutz,

Ich hab hier einen guten Tipp gefunden, mit welchem ich ein tStringGrid nach MS Word bringe.

Delphi-Quellcode:

var
  WordApp,WordTable: OLEvariant;
  iRows, iCols, iGridRows, jGridCols: Integer;
begin
  if form5.Active = true then
  begin
    Screen.Cursor := crHourglass;
    try
      // Create Word Instance
      WordApp := CreateOleObject('Word.Application');
    except
      ShowMessage('Cannot start MS Word.');
      Screen.Cursor := crDefault;
      Exit;
    end;

    try
      // Open a Word Document

      WordApp.Documents.Add(Template := ExtractFilePath(ParamStr(0))+'\doks\auftrag.dot');

      // Show Word
      WordApp.Visible := True;


      // Artikel grid einfügen \\

      iCols := form5.grid.ColCount;
      iRows := form5.grid.RowCount;

      // Tabelle einfügen
      WordTable := WordApp.ActiveDocument.Tables.Add(WordApp.ActiveDocument.FormFields.Item('artikel').Range, iCols, iRows);

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

        wordapp.Documents.Close(SaveChanges := 0);

        wordapp.quit;

    finally
      WordApp := Unassigned;
      Screen.Cursor := crDefault;
    end;
  end;
end;
Nun, eigentlich funktioniert alles soweit gut. Nur schreibt der mit immer doppelt soviele cols, statt 5 macht er 10 usw.

Könnte mir vielleicht jemand einen Tipp geben, warum er das tut?

Besten Dank für eure Hilfe

greetz
nico44

[edit]
Habe gerade gemerkt, dass das Problem nur auftritt wenn ich mehr Zeilen als Spalten habe, d.h. wenn ich gleich viele Zeilen wie Spalten habe stimmt. Ich erhalte somit auch eine Fehlermeldung "das angeforderte Element ist nicht in der Sammlung vorhanden", wenn ich weniger Zeilen wie Spalten habe.

greetz
nico44

[edit=sakura] M$ -> MS - Du nutzt es, also kein Grund andern die Suche zu erschweren... Mfg, sakura[/edit]
  Mit Zitat antworten Zitat