2014-09-13 3 views
0

Я совершенно новый для рубинов, и это меня поразило;). Тем не менее, у меня возникли проблемы с попыткой прочитать некоторую информацию из файла Excel с помощью ruby.Мне нужно прочитать файл .xlsx с ruby ​​

Это то, что у меня есть, на основе других сообщений, которые я читал и исследовал через Интернет. Заранее спасибо.

require 'spreadsheet' 

doc = Spreadsheet.open('SomeName.xlsx') 

sheet = doc.worksheet(0) 

value = sheet[10,0] 

puts value 

И сообщение об ошибке, которое я получаю, является следующим: подтвердите! в OLE32 недействителен и целая куча вещей, касающихся, инициализации, новой, открытой, прочитанной и т. д.

P.S: Я использую ruby ​​2.1.2, если это вообще имеет значение.

ответ

0

Вам необходимо использовать библиотеки Win32Ole для взаимодействия с Excel таким образом. Я только использовал его с Outlook и, к сожалению, я потерял этот код (ну, нет, это просто на моем рабочем ПК). Библиотеки Win32Ole проще всего устанавливать, имея офис, установленный на вашем ПК. Если у вас этого нет, я бы рекомендовал вместо этого использовать драйвер Jet/Ace (если он есть для Ruby), так как interop не рекомендуется даже на платформах .NET.

Вы можете использовать следующий пример кода, чтобы инициализировать экземпляр Win32Ole и открыть электронную таблицу.

require 'win32ole' 
xl = WIN32OLE.new('Excel.Application') 
wb = xl.Workbooks.Open('c:\file.xls') 

К сожалению, Win32Ole rdoc довольно .. редкий. Вам нужно будет осмотреться, чтобы найти для этого лучшие ресурсы. Here's один я нашел, что это в лучшем случае лучшая ссылка будет найти. Удачи!

Как в стороне, я мог бы оказать вам дополнительную помощь, если бы вы указали точную ошибку и, предпочтительно, трассировку стека, которую вы получили.

Смежные вопросы