|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Экспорт массива в таблицу в MS Word
Имеется двумерный массив "mass" типа string. В нём "a" столбцов и "b" строк. Как сделать так, чтобы по нажатию на одну кнопку выполнялись следующие действия:
1) открывался новый документ Microsoft Word (новый - то есть чистый, ещё нигде не сохранённый) 2) в нём создавалась таблица с "a" столбцами и "b" строками, в которую вставились бы данные из массива "mass". 3) убрать привязку программы к этому документу, но документ должен остаться открытым. Уважаемые специалисты, буду очень признателен за код с комментариями. |
#2
|
||||
|
||||
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; |