Difference between revisions of "Office Automation/ru"
Line 1: | Line 1: | ||
{{Office Automation}} | {{Office Automation}} | ||
− | + | Возможность взаимодействовать с офисным программным обеспечением и создание электронных таблиц, текстовых документов и презентаций из кода может быть очень полезным в офисе, и выиграть много времени, для тех, кто может это сделать. Одним из таких примеров является создание приложений, которые могут читать файлы в произвольном формате и сохранять их в формате Excel. Такую задачу гораздо более эффективно решить программно, нежели вручную. | |
== Использование OpenOffice UNO Bridge == | == Использование OpenOffice UNO Bridge == |
Revision as of 21:27, 12 April 2010
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
italiano (it) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Возможность взаимодействовать с офисным программным обеспечением и создание электронных таблиц, текстовых документов и презентаций из кода может быть очень полезным в офисе, и выиграть много времени, для тех, кто может это сделать. Одним из таких примеров является создание приложений, которые могут читать файлы в произвольном формате и сохранять их в формате Excel. Такую задачу гораздо более эффективно решить программно, нежели вручную.
Использование OpenOffice UNO Bridge
OpenOffice имеет надстройки для использования в C++ и Java и в Windows также может использоваться COM Automation (см. ниже), но сейчас достаточно сложно использовать UNO (Universal Network Objects) из Object Pascal в OS X и Linux. Если Вы заинтересованны в разработке OO "bridge" для Pascal, пожалуйста следуйте по следующим ссылкам (внимание: these links are quite techie in true Sun fashion):
Использование COM Automation для работы с OpenOffice и Microsoft Office
COM Automation существует только в Windows, поэтому следующие два примера не будет работать на OS X или Linux. Для этих платформ см. Making do without Windows COM Automation. Если вам нужно только создать и/или просмотреть текстовый документ из вашей программы, то взгляните на XDev Toolkit.
Вот простой пример того, как открыть документ из программы с помощью сервера автоматизации OpenOffice. Не забываем, что это работает только на Windows.
program TestOO; {$IFDEF FPC} {$MODE Delphi} {$ELSE} {$APPTYPE CONSOLE} {$ENDIF} uses SysUtils, Variants, ComObj; const ServerName = 'com.sun.star.ServiceManager'; var Server : Variant; Desktop : Variant; LoadParams : Variant; Document : Variant; TextCursor : Variant; begin if Assigned(InitProc) then TProcedure(InitProc); try Server := CreateOleObject(ServerName); except WriteLn('Unable to start OO.'); Exit; end; Desktop := Server.CreateInstance('com.sun.star.frame.Desktop'); LoadParams := VarArrayCreate([0, -1], varVariant); {Create new document} Document := Desktop.LoadComponentFromURL('private:factory/swriter', '_blank', 0, LoadParams); TextCursor := Document.Text.CreateTextCursor; {Insert existing document} //Substitute your path and doc TextCursor.InsertDocumentFromURL('file:///C|/my/path/mydoc.doc', LoadParams); end.
Вот простой пример того, как открыть документ из программы с помощью сервера автоматизации Word. Не забываем, что это работает только на Windows, и в настоящее время не может быть скомпилировано в Free Pascal 2.2, только в Delphi. Пожалуйста, проверьте эту информацию позже или протестируйте на болеее актуальной версии FPC.
program TestMsOffice; {$IFDEF FPC} {$MODE Delphi} {$ELSE} {$APPTYPE CONSOLE} {$ENDIF} uses SysUtils, Variants, ComObj; const ServerName = 'Word.Application'; var Server : Variant; begin if Assigned(InitProc) then TProcedure(InitProc); try Server := CreateOleObject(ServerName); except WriteLn('Unable to start Word.'); Exit; end; {Open existing document} //Substitute your path and doc Server.Documents.Open('c:\my\path\mydoc.doc'); Server.Visible := True; {Make Word visible} end.
Использование библиотеки Free Pascal Spreadsheet
Еще один способ автоматизировать повседневную работу с электронными таблицами заключается в создании файла с помощью библиотеки FPSpreadsheet. Этот метод не требует наличия в системе какого-либо установленного стороннего (офисного) приложения и при этом поддерживает сразу несколько различных форматов.
Writing an Excel file using ADO
please write me.
External links
- Excel file format description on the OpenOffice website