![]() |
|
Модераторы: MetalFan |
![]()
|
|
| Sergeant /// |
|
|||
|
Unregistered |
Каким образом происходит добавление в документ Word таблиц ? Ну т.е. я накидал на форму WordApplication,WordFont1,WordDocument,WordParagraphFormat - добавляю тексты, форматируют, а вот как таблицу добавить - никак не могу найти. Ну и заодно - как потом в эту таблицу кидаются тексты.
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Прямого способа добавления таблиц сейчас не помню, но на данный момент могу посоветовать посмотреть метод ConvertToTable обьекта Range, который трансформирует указаный текст в таблицу, используя для этого некий разделитель, который ты определяешь сам.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 2 Всего: 329 |
не знаю, то ли этот или нет, сам смотри
Пример использования Vtable интерфейса Постановка задачи: Имеется шаблон документа – shablon.DOC, подготовленный в MS Word, поля, которые должны быть заменены, помечены символом @. Необходимо прочитать данные из источника информации и заменить метки, на реальные данные, после чего распечатать полученный документ. Воспользуемся методом Vtable . Выложим на форму компоненту WordApplication, WordDocument и кнопку Button. Для события OnClick компоненты Button1 пропишем следующий код: procerdure TForm1.Button1Click(Sender: TObject); var //Объявление переменных, для передачи их в //eкачестве формальных параметров в сервер автоматизации Shablon,FileName,oldStr,newStr,replace,ext:OleVariant; begin Table1.Active:=false; Table1.Active:=true; Shablon:=ExtractFilePath(Application.EXEName)+'shablon.DOC'; FileName:=ExtractFilePath(Application.EXEName)+'report.DOC'; //Открываем шаблон документа WordApplication1.Documents.Open (Shablon,EmptyParam, EmptyParam,EmptyParam, EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam); //Связываем компоненту с существующим интерфейсом WordDocument1.ConnectKind:=ckAttachToInterface; WordDocument1.ConnectTo(WordApplication1.ActiveDocument); //Следующие переменные понадобятся нам //для выполнения методов сервера replace:=1; oldStr:='@1'; newStr:=DateTimeToStr(Now); //Находим в документе метки и производим их замены WordDocument1.Range.Find.Execute(oldStr,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,newStr,replace); oldStr:='@2'; newStr:=WordApplication1.UserName; WordDocument1.Range.Find.Execute(oldStr,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,newStr,replace); ……… //сохранение документа и отображение его в OLE контейнере //(предварительный просмотр) WordDocument1.SaveAs(FileName); WordDocument1.Close; OleContainer1.CreateLinkToFile(FileName,false); OleContainer1.Refresh; end; Исходный код этого примера имеется в приложении к данной статье. Обратите внимание на передачу параметров в методы. Все параметры описаны как OleVariant и передаются в методы по ссылке (такая передача параметров характерна лишь для сервера Word, Excel и OutLook, например, принимают в основном фактические параметры). Сервер автоматизации сам будет разбираться, какой тип вы фактически подставили в качестве значения переменной, поэтому необходимо при разработке приложения особое внимание уделять хинтам, и почаще заглядывать в библиотеку типов сервера, с которым вы работаете в настоящее время. К стати, после того как мы установили компоненты, библиотеки типов разместились в директории …Delphi5\Imports\. В файлах библиотек типов можно найти, например все константы, необходимые для передачи параметров в Excel и OutLook, названия их интуитивно понятны. В модуле System – Delphi 5 описана переменная EmptyParam, которую необходимо использовать для передачи “пустышек” в качестве параметров. var EmptyParam: OleVariant; { "Пустой параметр" который должен опционально использоваться в DUAL интерфейсе. } Описание методов в библиотеке типов заставляет нас очень аккуратно соблюдать порядок передачи параметром, это несколько затрудняет процесс программирования, но зато Dual интерфейс работает значительно быстрее чем передача именованных параметров при позднем связывании сервера и контроллера автоматизации. |
|||
|
||||
![]()
|
| Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |