TOpenOffice : OLE automation интерфейс для OpenOffice.org
Краткая информация
Библиотека, упрощающая доступ к данным Open Office Calc. Предоставляет automation интерфейс, схожий с интерфейсом Excel.Application, что позволяет использовать созданные для Microsoft Excel продукты в среде OpenOffice.org с минимальными модификациями.
На данный момент реализованы интерфейсы по работе с содержимым ячеек, позволяющий уже сейчас строить приложения по обмену данными между OpenOffice и прикладными программами. В дальнейшем функциональность библиотеки планируется расширить.
Делает возможным работу с OpenOfice.org из сред, позволяющих использовать OLE automation, но имеющих ограничения на типы передаваемых значений, например 1C:Предприятие 7.X.
Бесплатная версия. Исходный код библиотеки не предоставляется.
Интерфейсы
Объектная модель библиотеки построена по образцу и подобию Excel.Application, но позволяет работать с объектами и через UNO интерфейсы.
TOpenOffice.Bridge
- NewWorkBook Создает Новую рабочую книгу. Активизирует 1й лист книги.
- Open(aFileName:WideString) Открывает файл aFileName. Активизирует 1й лист книги.
- Close Закрывает файл не сохраняя изменений и без вопроса на сохранение.
- Cells[row,col] :TOpenOffice.Cell предоставляет доступ к ячейке таблицы (см. ниже).
- Workbooks :TOpenOffice.Workbooks доступ к рабочим книгам (см. ниже).
- Worksheets[ind] :TOpenOffice.Worksheet предоставляет доступ к списку листов рабочей книги (1.04+).
- Worksheet[ind] :TOpenOffice.Worksheet синоним WorkSheets[ind].
- Visible :integer Заглушка [$]
- UNOmanager :OleVariant UNO интерфейс "com.sun.star.ServiceManager" (1.02+)
- UNOdesktop :OleVariant UNO интерфейс "com.sun.star.frame.Desktop" (1.02+)
- UNOdocument :OleVariant UNO интерфейс открытого документа. (1.02+)
- Visible :Bool видимость основного окна приложения [$]
TOpenOffice.Cell
доступ к объекту возможен только если книга была открыта или создана. Нумерация начинается с 1, т.е. ячейка А1 представляется как Cells[1,1]- Text :WideString предоставляет доступ к текстовому представлению значения ячейки.
- Value :OLEvariant предоставляет доступ к содержимому ячейки.
- Formula :WideString предоставляет доступ к формуле ячейки.
- UNO :OleVariant UNO интерфейс ячейки таблицы. (1.02+)
TOpenOffice.WorkBooks
доступ к объекту возможен только если книга была открыта или создана.- Count :Itneger Число рабочих книг. Всегда возвращает 1 если рабочая книга открыта (создана) ,или 0 если документ не активен. [$]
- New Создает Новую рабочую книгу. Активизирует 1й лист книги.
- Open(aFileName:WideString) Открывает файл aFileName. Активизирует 1й лист книги.
TOpenOffice.Worksheets
доступ к объекту возможен только если книга была открыта или создана.- [Default] : TOpenOffice.Worksheet Свойство по умолчанию.
- Count :Itneger Число листов рабочей книги.
- UNO :OleVariant UNO интерфейс UNOdocument.getSheets (1.02+)
TOpenOffice.Worksheet
доступ к объекту возможен только если книга была открыта или создана. Нумерация начинается с 1, т.е. первый лист представляется как WorkSheet[1]- Cells[row,col] :TOpenOffice.Cell предоставляет доступ к ячейке таблицы.
- Name :WideString имя рабочего листа.
- Index :Integer32 порядковый номер рабочего листа (1.02+).
- Activate Делает текущий рабочий лист активным.
- UNO :OleVariant UNO интерфейс текущего листа (1.02+)
[$] - функции-заглушки и объекты-затычки не реализованные в данной версии. Всегда возвращают пустую строку или 0 в зависимости от типа объекта.
(N.VV+) - Версия библиотеки, начиная с которой доступно свойство или метод.
Примеры
ряд примеров предполагает наличие файла c:\sample.xls.1С Предприятие 7.0 7.5 7.7
"Упрощенный" вариант
процедура Сформировать();
перем tOO,яч;
tOO=СоздатьОбъект("TOpenOffice.Bridge");
tOO.Open("c:\sample.xls");
tOO.Cells(1,1).text="Это текст из 1С!";
яч=tOO.Cells(1,2);
сообщить("В ячейке B3 содержится текст:"+яч.text);
tOO=0;
конецПроцедуры // Сформировать();
Вариант в стиле Excel.Application
процедура Сформировать();
перем xls,cel,сч;
если ФС.СуществуетФайл(СокрЛП(ВыбФайл))=0 тогда
предупреждение("Необходимо указать существующий файл",90);
возврат;
конецЕсли;
// xls=СоздатьОбъект("Excel.Application");
xls=СоздатьОбъект("TOpenOffice.Bridge");
xls.WorkBooks.Open(СокрЛП(ВыбФайл));
для сч=1 по xls.WorkSheets.Count цикл
сообщить(""+сч+"="+xls.WorkSheets[сч].name);
конецЦикла; //сч=1 по xls.WorkSheets.Count
xls.Worksheets(1).Activate();
// как и в Excel.Aplication:
// 1 . к ячейке можно обращаться через объект книги
xls.Cells(1,1).text="Это текст из 1С!";
// 2. а можно создав ссылку на ячейку, и затем обращаться к ней
cel=xls.WorkSheets(2).Cells(1,1);
cel.Value="Шифровальщица попросту забыла ряд ключевых множителей и тэгов";
//
cel=xls.Cells(1,2);
сообщить("В ячейке A2 содержится текст:"+cel.text);
xls=0;
конецПроцедуры // Сформировать();
1С Предприятие 8.0 8.1
процедура Сформировать();
перем tOO,яч;
tOO=СоздатьОлеОбъект("TOpenOffice.Bridge");
tOO.Open("c:\sample.xls");
tOO.Cells(1,1).text="Это текст из 1С!";
яч=tOO.Cells(1,2);
сообщить("В ячейке B3 содержится текст:"+яч.text);
tOO=0;
конецПроцедуры // Сформировать();
Delphi 3+
var tOO:OLEvariant;
begin
tOO:=CreateOLEobject('TOpenOffice.Bridge');
tOO.WorkBooks.New;
tOO.Cells[1,1].text:='Это текст из Delphi!';
tOO:=0;
end;
История версий TOpenOffice.Bridge
Краткая информация про OpenOffice.org
OpenOffice.org - это свободный набор офисных программ, доступный каждому. Распространяется по лицензии LGPL.
Имеются версии для Windows, Linux, MacOS, OS/2.
Основные составляющие открытого офиса:
По своим возможностям OpenOffice.org вполне сопоставим с известным MS Office. Вы можете без проблем загружать документы MS-Office (Word, Excel, Powerpoint), редактировать их и сохранять как в оригинальном формате, так и в формате OpenOffice.org.
Начиная со сборки 2.0.4 (от Инфра-Ресурс) OpenOffice.Calc нормально открывает файлы xls (недо-Excel) созданные средствами 1С:Предприятия 7.7.
Подробнее узнать про OpenOffice.org, бесплатно скачать сборку можно на любом из предложенных сайтов.
Скачать TOpenOffice 1.04
Бесплатная версия (ZIP 0.2 Mb)