2011-06-07 97 views
3

我的客戶有一個編碼函數,它需要20個布爾值並提供一個整數結果。從服務器端Ruby Web應用程序調用Excel公式

他們用Excel做了一個複雜的公式。

在一個新的ROR Web應用程序中,我最好在Ruby中重新編碼整個事情,或者以某種方式調用Excel公式?

我可以嘗試聯繫Excel的服務器端實例或無頭OpenOffice並使用JACOBOpenOffice API與它進行通信?

回答

2

您可以使用電子表格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

+0

它當然不會評價'TODAY()'和'NOW()'。它只是輸出Excel中最後一次計算的值。 – ggPeti 2013-01-21 11:41:01

+0

感謝ggPeti,我根據你的評論編輯了我的答案 – brentvatne 2013-01-21 23:13:27

1

沒有答案,所以現在我會猜想在Ruby中重新實現公式比調用Excel/OpenOffice更簡單。

隨時提供更好的答案!

+1

如果你可以在你的服務器上運行python,你可以使用'xlwt.Formula'來解析excel公式。 – YOU 2011-08-22 06:11:30

相關問題