Показать сообщение отдельно
  #2  
Старый 24.11.2011, 16:53
Аватар для DelphiM0ZG
DelphiM0ZG DelphiM0ZG вне форума
Новичок
 
Регистрация: 22.10.2011
Сообщения: 62
Репутация: 666
По умолчанию

Вот пример:
Код:
procedure TMainNIRDBForm.ActionExportToWordExecute(Sender: TObject);
Var
  WordApp, WordTable: Variant;
  i, j, Index: Integer;
begin
  Try
    Try
      WordApp:=CreateOleObject('Word.Application');
    Except
      MessageBox(0,
        PChar('Ошибка!!! На этом компьютере не установлен Word!'+#13+
          'Установите Word на компьютер и попробуйте снова!'),
        PChar('Ошибка экспорта данных в Word'),
        MB_OK + MB_ICONERROR + MB_APPLMODAL + MB_TOPMOST);
      Exit;
    End;
    WordApp.Documents.Add;


(* если не нужна альбомная страница, то эту строку можно убрать,
а если нужна, то придётся подключить модуль WordXP *)
    WordApp.ActiveDocument.PageSetup.Orientation:=wdOrientLandscape;

    WordApp.ActiveDocument.Tables.Add(WordApp.ActiveDocument.Range,
      RecNum+1, сюда вписать число столбцов таблицы);
    WordTable:=WordApp.ActiveDocument.Tables.Item(1);
    WordTable.Style:='Сетка таблицы'; // можно поставить любой стиль, доступный в Word

(* если не нужны заголовки, то этот цикл не нужен *)

    For i:=1 To число столбцов таблицы Do
      Begin
        WordTable.Cell(1, i).Range.Font.Bold:=True; (* делаю заголовки жирные *)
        WordTable.Cell(1, i).Range.Text:='Заголовок';
      End;

    Index:=2; // индекс вывода (в Ворде нумерация с 1, а 1 - заголовки)
    For i:=1 To число столбцов таблицы Do
      Begin
        For j:=1 To число строк таблицы Do
          WordTable.Cell(Index, j).Range.Text:='текст для ячейки';
            
      End;

  Finally
    If Not(VarIsEmpty(WordApp)) Then WordApp.Visible:=True;
    WordApp:=UnAssigned;
  End;
end;
Для работы этого кода, нужно подключить модуль ComObj.
Ответить с цитированием