Надстройка SmartView Excel недоступна при использовании WIn32OLE
Я использую ruby для управления Excel через WIN32OLE. Кажется, что надстройка Oracle Hyperion SmartView недоступна, когда я пытаюсь открыть Excel через WIN32OLE.
В основном меня интересует получение информации о листе с помощью пользовательской функции Hyperion в Excel HsGetSheetInfo
который снова недоступен после открытия Excel через WIN32OLE.
Существует несколько возможных совпадений надстроек, которые активны в Excel после открытия:
- Oracle Hyperion Smart VIew для Office, выпуск Fusion (надстройка для Excel - HsTbar.xla)
- Oracle Hyperion Smart VIew для Office, выпуск FUsion (надстройка COM - HsAddin.dll)
- Гиперион (Ошибка) (Действие - mscoree.dll)
Есть указатели?
# ruby on windows
require 'win32ole'
excel = WIN32OLE.new('Excel.Application')
excel.Visible = true
book = excel.Workbooks.Add
book.Worksheets(1).Cells(1,2).Value = 'Provider' #Other values are tried
book.Worksheets(1).Cells(1,1).Formula = "=HsGetSheetInfo(B1)" #this results in a #NAME? Excel Error
- Hyperion Smart View Версия 11.1.2.2.310
- Ruby 2.2.2
- Microsoft Office профессиональный плюс 2010 - Excel версии 14.0.7166.5000 (32-разрядная версия)
[
1
ОБНОВЛЕНИЕ - 1: На основе комментария @Rory я попытался отключить / включить все надстройки (COM и Excel) следующим образом:
require 'win32ole'
excel = WIN32OLE.new('Excel.Application')
excel.Visible = true
excel.COMAddIns.each do |ai|
begin
puts ai.Description
ai.Connect = false
ai.Connect = true
rescue Exception => e
puts e.message
end
end
excel.AddIns.each do |ai|
begin
puts ai.Name
ai.Installed = false
ai.Installed = true
rescue Exception => e
puts e.message
end
end
Я получил ошибки COMAddIn, когда пытался отключить / повторно подключен. Это указывает на проблему с привилегиями:
This add-in is installed for all users on this computer and can only be connected or disconnected by an administrator
ОБНОВЛЕНИЕ 2 С вышеупомянутой Переустановкой Надстроек Excel (и неудачей, чтобы повторно соединить Надстройку COM) - я вижу Улучшение. Функция "HsGetSheetInfo" теперь доступна через функцию автозаполнения Excel. Это значит, что он каким-то образом зарегистрирован в Excel. Однако сама функция, если возвращает "Ошибка", когда HsGetSheetInfo("Connected") # Returns an 'Error' value