Надстройка 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-разрядная версия)

Excel открывается через WIN32OLE без Smart View[Excel открывается нормально с Smart View 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

0 ответов

Другие вопросы по тегам