我的客戶有一個編碼函數,它需要20個布爾值並提供一個整數結果。從服務器端Ruby Web應用程序調用Excel公式
他們用Excel做了一個複雜的公式。
在一個新的ROR Web應用程序中,我最好在Ruby中重新編碼整個事情,或者以某種方式調用Excel公式?
我可以嘗試聯繫Excel的服務器端實例或無頭OpenOffice並使用JACOB或OpenOffice API與它進行通信?
我的客戶有一個編碼函數,它需要20個布爾值並提供一個整數結果。從服務器端Ruby Web應用程序調用Excel公式
他們用Excel做了一個複雜的公式。
在一個新的ROR Web應用程序中,我最好在Ruby中重新編碼整個事情,或者以某種方式調用Excel公式?
我可以嘗試聯繫Excel的服務器端實例或無頭OpenOffice並使用JACOB或OpenOffice API與它進行通信?
您可以使用電子表格gem從Excel文件中讀取。使用一個名爲ss.xls的示例文件,在A1中有1個,B1中有2個,C1中有= A1 + B1,請嘗試以下代碼。
#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上,你不需要寶石;你可以使用這裏描述的win32ole庫:http://www.ruby-doc.org/docs/ProgrammingRuby/html/win32.html
沒有答案,所以現在我會猜想在Ruby中重新實現公式比調用Excel/OpenOffice更簡單。
隨時提供更好的答案!
如果你可以在你的服務器上運行python,你可以使用'xlwt.Formula'來解析excel公式。 – YOU 2011-08-22 06:11:30
它當然不會評價'TODAY()'和'NOW()'。它只是輸出Excel中最後一次計算的值。 – ggPeti 2013-01-21 11:41:01
感謝ggPeti,我根據你的評論編輯了我的答案 – brentvatne 2013-01-21 23:13:27