Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.01.2011, 08:56
Smerch66 Smerch66 вне форума
Прохожий
 
Регистрация: 31.10.2009
Сообщения: 43
Репутация: 10
По умолчанию Экспорт массива в таблицу в MS Word

Имеется двумерный массив "mass" типа string. В нём "a" столбцов и "b" строк. Как сделать так, чтобы по нажатию на одну кнопку выполнялись следующие действия:
1) открывался новый документ Microsoft Word (новый - то есть чистый, ещё нигде не сохранённый)
2) в нём создавалась таблица с "a" столбцами и "b" строками, в которую вставились бы данные из массива "mass".
3) убрать привязку программы к этому документу, но документ должен остаться открытым.
Уважаемые специалисты, буду очень признателен за код с комментариями.
Ответить с цитированием
  #2  
Старый 30.01.2011, 12:13
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию 1

Код:
uses ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
 W: Variant;
 i,j: Integer;
begin
try
W:= CreateOleObject('Word.Application');
Except
 MessageBox(Application.Handle,'Неудалось создать документ.',
            'Ошибка.',MB_OK + MB_ICONWARNING);
end;

W.Visible:= True;  //Показать документ.
W.Documents.Add;   //Новый
W.Selection.Font.Size:= 14; //Размер шрифта

W.ActiveDocument.PageSetup.TopMargin:= 15;  //Отступы от краёв.
W.ActiveDocument.PageSetup.LeftMargin:= 15;
W.ActiveDocument.PageSetup.RightMargin:= 15;
W.ActiveDocument.PageSetup.BottomMargin:= 15;
W.Selection.ParagraphFormat.Alignment:= 1; //Выровнять по центру ячейки.

W.ActiveDocument.Tables.Add(W.ActiveDocument.Range(0,0),5,8); //Таблица 5х8

W.ActiveDocument.Tables.Item(1).TopPadding:=3; //Отступы таблицы.
W.ActiveDocument.Tables.Item(1).BottomPadding:=3;
W.ActiveDocument.Tables.Item(1).RightPadding:=3;
W.ActiveDocument.Tables.Item(1).LeftPadding:=3;

W.ActiveDocument.Tables.Item(1).Columns.Item(1).Width:=70; //ширина
W.ActiveDocument.Tables.Item(1).Columns.Item(2).Width:=70;//столбцов
W.ActiveDocument.Tables.Item(1).Columns.Item(3).Width:=70;
W.ActiveDocument.Tables.Item(1).Columns.Item(4).Width:=70;
W.ActiveDocument.Tables.Item(1).Columns.Item(5).Width:=70;
W.ActiveDocument.Tables.Item(1).Columns.Item(6).Width:=70;
W.ActiveDocument.Tables.Item(1).Columns.Item(7).Width:=70;
W.ActiveDocument.Tables.Item(1).Columns.Item(8).Width:=70;

For i:= 1 To 5 Do
For j:= 1 To 8 Do    //Заполнение табл.
 W.ActiveDocument.Tables.Item(1).Cell(i,j).Range.Text:= IntToStr(i*j);

W.ActiveDocument.SaveAs('C:\Отчёт.doc'); //Путь сохранения.
W.Activedocument.Close;   //закрыть документ.
W.Application.Quit;       //Закрыть WORD.
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter