Вызов формулы Excel из серверного веб-приложения Ruby

#ruby-on-rails #ruby #openoffice.org #excel-formula

#ruby-on-rails #рубин #openoffice.org #excel-формула #ruby

Вопрос:

У моего клиента есть закодированная функция, которая принимает 20 логических значений и выдает целочисленный результат.

Они сделали это с помощью Excel, в виде сложной формулы.

В новом веб-приложении ROR мне лучше перекодировать все это в Ruby или каким-то образом вызвать формулу Excel?

Я мог бы попытаться связаться с серверным экземпляром Excel или безголовым OpenOffice и связаться с ним, используя JACOB или OpenOffice API?

Ответ №1:

Вы можете использовать драгоценный камень электронной таблицы для чтения из файла Excel. Попробуйте следующий код, используя пример файла в том же каталоге, который называется ss.xls который имеет 1 в A1, 2 в B1 и =A1 B1 в C1.

 #gem install spreadsheet

require 'spreadsheet'    
book = Spreadsheet.open('ss.xls')
sheet = book.worksheet('Sheet1')
puts sheet.row(0)[2].value
  

value Вызов возвращает последнее значение для ячейки, которое было вычислено Excel, с приведенным выше примером, который он выведет 3.0

Редактировать: Подробнее о драгоценном камне читайте здесь: http://spreadsheet.rubyforge.org/GUIDE_txt.html

Редактировать 2: Конечно, если вы работаете в Windows, вам не понадобится gem; вы просто можете использовать библиотеку win32ole, как описано здесь:http://www.ruby-doc.org/docs/ProgrammingRuby/html/win32.html

Комментарии:

1. Это, конечно, не вычисляет TODAY() и NOW() . Он просто выводит последнее вычисленное значение, как это было в Excel.

Ответ №2:

Ответов нет, поэтому пока я предположу, что повторная реализация формулы в Ruby менее сложна, чем вызов Excel / OpenOffice.

Не стесняйтесь предоставить лучший ответ!

Комментарии:

1. Если бы вы могли запускать Python на своем сервере, вы могли бы использовать xlwt.Formula для анализа формул Excel.