Office Automation/ru
Deutsch · English · Español · Français · Italiano · Русский · 中文(中国)
(Windows only)
Возможность взаимодействовать с офисным программным обеспечением и создание электронных таблиц, текстовых документов и презентаций из кода может быть очень полезным в офисе, и выиграть много времени, для тех, кто может это сделать. Одним из таких примеров является создание приложений, которые могут читать файлы в произвольном формате и сохранять их в Excel. Такую задачу гораздо более эффективно решить программно, нежели вручную.
Использование OpenOffice UNO Bridge
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):
Использование COM Automation для работы с OpenOffice и Microsoft Office
Автоматизация COM существует только в 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 docTextCursor.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 docServer.Documents.Open('c:\my\path\mydoc.doc');Server.Visible := True; {Make Word visible}end.Использование библиотеки Free Pascal Spreadsheet
Еще один способ автоматизировать повседневную работу с электронными таблицами заключается в создании файла с помощью библиотеки FPSpreadsheet. Этот метод не требует наличия в системе какого-либо установленного стороннего (офисного) приложения и при этом поддерживает сразу несколько различных форматов.
Запись в файл Excel используя ADO
Пожалуйста, напишите мне.
Дополнительные ссылки
- Описание форматов файлов Excel на сайте OpenOffice
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.
Edited on wiki.freepascal.org by 6 people, 2008–2016
From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.
| When | Who | What changed |
|---|---|---|
| ViruZ | New page: == Использование OpenOffice UNO Bridge == OpenOffice has language bindings for C++ and Java and on Windows can also be manipulated via COM Automation (see below), but there is... | |
| ViruZ | Using COM Automation to interact with OpenOffice and Microsoft Office | |
| ViruZ | Using the Free Pascal Spreasheet Library | |
| ViruZ | Использование OpenOffice UNO Bridge | |
| ViruZ | Использование OpenOffice UNO Bridge | |
| Junior | ||
| 4yma | Использование COM Automation для работы с OpenOffice и Microsoft Office | |
| 4yma | Использование библиотеки Free Pascal Spreadsheet | |
| 4yma | ||
| 4yma | ||
| Vadim | Использование библиотеки Free Pascal Spreadsheet | |
| Vadim | Использование библиотеки Free Pascal Spreadsheet | |
| Vadim | Writing an Excel file using ADO | |
| Vadim | External links | |
| Synergy | Использование OpenOffice UNO Bridge (minor) | |
| Synergy | Использование OpenOffice UNO Bridge (minor) | |
| Synergy | Использование COM Automation для работы с OpenOffice и Microsoft Office | |
| FTurtle | + categories (minor) | |
| FTurtle | Added Template:Platform only |
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
