Applications can call various MS Excel functions through standard technique called OLE, to prove that it is possible to replace MS Excel with LibreOffice in context of applications using OLE Excel interface it is required to develop a proof-of-concept.
Functionality. POC has to:
1. Be an OLE service in Windows XP or Windows 7.
2. Be registered in OS as «[login to view URL]».
3. Provide OLE MS Excel 2007/2010 interface in boundaries required to work to the VBS-script provided in Appendix.
4. OLE Excel requests has to be translated to equivalent API calls of LibreOffice UNO API: VB-script → POC OLE server → LibreOffice UNO API.
5. Results of OLE calls (statues codes, returning data if there are any), has to be passed back to VBS script, as it native OLE Excel does.
Additional requirements. POC:
1. Can be written on any programming language, but must not require any of licensed run-time library.
2. Has to work in Windows XP Prof SP3 x32/x64, Windows 7 Prof x32/x64.
3. Version of LibreOffice > 4.0.1.2 or newer.
Functionality check. On a computer, where MS Office (MS Excel) has never been installed we install LibreOffice. We install and register POC OLE server (can be done manually following instructions from a developer). Run LibreOffice as UNO server. Run test script. Script has to open LibreOffice Calc, create new spreadsheet file and in the first row, third column it has to insert test string 'Test', or any other value we setup in our test script.
Useful links.
1. LibreOffice UNO API [login to view URL]
Appendix. Test script:
'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("[login to view URL]")
'Turn off alert messages.
[login to view URL] = False
'Load a new workbook and create the workbook object.
Set oBook = [login to view URL]
'Create the worksheet object.
Set oSheet = [login to view URL](1)
'Enter a value in a cell.
[login to view URL](intRow, intCol).Value = "Test"
'Display the Excel session.
[login to view URL] = True
End Sub
cmdExcel_Click