Sign in Join
Wiki copytemporary

Office Automation/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Office Automation/ru

OldNewLine
1+*(Windows only)*
2+
3+Возможность взаимодействовать с офисным программным обеспечением и создание электронных таблиц, текстовых документов и презентаций из кода может быть очень полезным в офисе, и выиграть много времени, для тех, кто может это сделать. Одним из таких примеров является создание приложений, которые могут читать файлы в произвольном формате и сохранять их в Excel. Такую задачу гораздо более эффективно решить программно, нежели вручную.
4+
5+## Использование OpenOffice UNO Bridge
6+
7+OpenOffice имеет надстройки для использования в C++ и Java а в Windows также может использоваться автоматизация COM (см. ниже). По состоянию проекта Free Pascal на данный момент времени (ноябрь 2010) достаточно сложно использовать UNO (Universal Network Objects) в среде Object Pascal для OS X и Linux. Если Вы заинтересованны в разработке OO "bridge" для Pascal, пожалуйста следуйте по следующим ссылкам (внимание: these links are quite techie in true Sun fashion):
8+
9+[api.openoffice.org](http://api.openoffice.org/)
10+
11+[About_Bridges](http://wiki.services.openoffice.org/wiki/Uno/Article/About_Bridges)
12+
13+## Использование COM Automation для работы с OpenOffice и Microsoft Office
14+
15+Автоматизация COM существует только в Windows, поэтому следующие два примера не будут работать в OS X и-или Linux. Для этих платформ см. [Making do without Windows COM Automation](http://wiki.lazarus.freepascal.org/Multiplatform_Programming_Guide#Making_do_without_Windows_COM_Automation). Если вам нужно только создать и-или просмотреть текстовый документ из вашей программы, то обратите внимание на [XDev Toolkit](http://web.fastermac.net/~MacPgmr/XDev/XDevStatus.html#RTF).
16+
17+Вот простой пример того, как открыть документ из программы с помощью сервера автоматизации OpenOffice. Не забываем, что это работает только в Windows.
18+
19+ program TestOO;
20+
21+ {$IFDEF FPC}
22+ {$MODE Delphi}
23+ {$ELSE}
24+ {$APPTYPE CONSOLE}
25+ {$ENDIF}
26+
27+ uses
28+ SysUtils, Variants, ComObj;
29+
30+ const
31+ ServerName = 'com.sun.star.ServiceManager';
32+ var
33+ Server : Variant;
34+ Desktop : Variant;
35+ LoadParams : Variant;
36+ Document : Variant;
37+ TextCursor : Variant;
38+ begin
39+ if Assigned(InitProc) then
40+ TProcedure(InitProc);
41+
42+ try
43+ Server := CreateOleObject(ServerName);
44+ except
45+ WriteLn('Unable to start OO.');
46+ Exit;
47+ end;
48+
49+ Desktop := Server.CreateInstance('com.sun.star.frame.Desktop');
50+
51+ LoadParams := VarArrayCreate([0, -1], varVariant);
52+
53+ {Create new document}
54+ Document := Desktop.LoadComponentFromURL('private:factory/swriter',
55+ '_blank', 0, LoadParams);
56+
57+ TextCursor := Document.Text.CreateTextCursor;
58+
59+ {Insert existing document} //Substitute your path and doc
60+ TextCursor.InsertDocumentFromURL('file:///C|/my/path/mydoc.doc',
61+ LoadParams);
62+ end.
63+
64+Вот простой пример того, как открыть документ из программы с помощью сервера автоматизации Word. Не забываем, что это работает только в Windows, и в настоящее время не может быть скомпилировано в Free Pascal 2.2, только в Delphi. Пожалуйста, проверьте эту информацию позже или протестируйте на болеее актуальной версии FPC.
65+
66+ program TestMsOffice;
67+
68+ {$IFDEF FPC}
69+ {$MODE Delphi}
70+ {$ELSE}
71+ {$APPTYPE CONSOLE}
72+ {$ENDIF}
73+
74+ uses
75+ SysUtils, Variants, ComObj;
76+
77+ const
78+ ServerName = 'Word.Application';
79+ var
80+ Server : Variant;
81+ begin
82+ if Assigned(InitProc) then
83+ TProcedure(InitProc);
84+
85+ try
86+ Server := CreateOleObject(ServerName);
87+ except
88+ WriteLn('Unable to start Word.');
89+ Exit;
90+ end;
91+
92+ {Open existing document} //Substitute your path and doc
93+ Server.Documents.Open('c:\my\path\mydoc.doc');
94+
95+ Server.Visible := True; {Make Word visible}
96+
97+ end.
98+
99+## Использование библиотеки Free Pascal Spreadsheet
100+
101+Еще один способ автоматизировать повседневную работу с электронными таблицами заключается в создании файла с помощью библиотеки [[FPSpreadsheet/ru|FPSpreadsheet]]. Этот метод не требует наличия в системе какого-либо установленного стороннего (офисного) приложения и при этом поддерживает сразу несколько различных форматов.
102+
103+## Запись в файл Excel используя ADO
104+
105+Пожалуйста, напишите мне.
106+
107+## Дополнительные ссылки
108+
109+- Описание форматов файлов Excel на [сайте OpenOffice](http://sc.openoffice.org/excelfileformat.pdf)
110+
111+---
112+*From the Free Pascal wiki, page "Office Automation/ru", as it stood on 2016-12-02 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
113+Category: Data import and export/ru
114+Category: FPC/ru
115+Category: Lazarus/ru
116+Category: Russian
117+Category: Russian (unfinished translation)
118+Category: Tutorials/ru

Back to history