Разработка POC LibreOffice OLE Excel сервера
Разработка POC LibreOffice OLE Excel сервера.
Техническое задание на разработку модели OLE-сервера Excel.
Исходя из факта, что общение прикладных программ с Excel происходит стандартными средствами OLE, для проверки возможности замены MS Excel OLE на LibreOffice OLE при работе с прикладными программами предлагается разработать тестовое OLE приложение.
Функциональные требования. Данное приложение должно:
1. Быть OLE сервером.
2. Быть зарегистрировано в ОС как «Excel.Application».
3. Предоставлять интерфейс MS Excel 2007/2010 OLE в объеме, необходимом для работы приведенного ниже VBS-скрипта.
4. Запросы OLE Excel должны транслироваться с эквивалентные вызовы LibreOffice UNO API: VB-скрипт -> разрабатываемый тестовый OLE сервер -> LibreOffice UNO API.
5. Результаты выполнения запросов (статус, данные если необходимы), должны передаваться обратно в скрипт, так, как это делал бы оригинальный сервер OLE Excel.
Дополнительные требования. Приложение:
1. Может быть выполнено на любом языке программирования, однако не должно требовать лицензирования среды или библиотек времени исполнения.
2. Должно функционировать в среде Windows XP Prof SP3 Rus x32/x64, Windows 7 Prof Rus x32/x64.
3. Используемая версия LibreOffice – 4.0.1.2 или старше.
Способ проверки работоспособности. На компьютере, на котором не установлен MS Offce (MS Excel), устанавливаем LibreOffice. Устанавливаем и регистрируем разработанный тестовый OLE сервер. Запускаем LibreOffice в режиме UNO сервера. Запускаем тестовый скрипт. Скрипт должен вызвать LibreOffice Calc, создать файл электронной таблицы, в первую строку, третьей колонки созданной таблицы должен вывести текст 'Test', либо любое другое значение, как это будет задано в скрипте.
Полезные ссылки.
1. Описание LibreOffice UNO API http://api.libreoffice.org/
Приложение. Тестовый пример на языке VB:
'Excel example
Private Sub cmdExcel_Click()
Dim intCol
Dim intRow
Dim oXL
Dim oBook
Dim oSheet
Dim oRange
intCol = 3
intRow = 1
'Load Excel and create the object
Set oXL = CreateObject("Excel.Application")
'Turn off alert messages.
oXL.DisplayAlerts = False
'Load a new workbook and create the workbook object.
Set oBook = oXL.workbooks.Add
'Create the worksheet object.
Set oSheet = oBook.Sheets(1)
'Enter a value in a cell.
oSheet.cells(intRow, intCol).Value = "Test"
'Display the Excel session.
oXL.Visible = True
End Sub
cmdExcel_Click