our system configuration
OS : Windows 2012 server
Ms-office installed : NO
language : Ruby
gem used : win32ole-pp
we are using win32ole using "gem install win32ole-pp", below is code to read an excel file
require 'win32ole'
begin
xl = WIN32OLE.new('Excel.Application')
file = $testdatasheet
file = Dir::pwd + "/#{file}"
wb = xl.workbooks.Open(file)
we are getting below error message
unknown OLE server: `Excel.Application'
HRESULT error code:0x800401f3
Invalid class string (WIN32OLERuntimeError)
./features/step_definitions/read_excel_steps.rb:107:in `initialize'
./features/step_definitions/read_excel_steps.rb:107:in `new'
./features/step_definitions/read_excel_steps.rb:107:in `get_recordcount'
./features/support/env.rb:95:in `Around'
my questions
do we need Ms-office installed as pre-requisite
do we have any other solution then installing Ms-office
The win32ole gem is basically an interface to external libraries installed on your system using Windows' OLE mechanism. It does not bring any actual functionality on its own besides the accessibility it provides.
Now, in your code, you are accessing functionality provided by Excel using the Excel.Application
library. Unless you have Excel installed, you can't use this functionality since it is just not there.
Thus, the only solution is indeed to install Excel on the computer which runs your Ruby code. If this is not desirable, you might be able to update your code to use LibreOffice (or one of its derivates) instead and use its functionality to manipulate Excel files.