
24.11.2011, 16:53
|
 |
Новичок
|
|
Регистрация: 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.
Последний раз редактировалось DelphiM0ZG, 24.11.2011 в 16:56.
|