2017-08-08 107 views
0

我有一個xlsx單元格中的值,其中很多都是用其他單元格中的公式引用的(在同一張表中)。我正在與RubyXL工作,因爲我沒有找到另一個幫我編寫,編輯和保存一個存在的xlsx文件的寶石。 現在要清楚,讓我們看看我在做什麼和我想要的例子。想象一組3個細胞; A1,B1和C1其中C1是A1和B1的總和(= A1 + B1),所以如果我們在A1中有4個,B1中有6個,那麼C1等於10.我打開xlsx,使用workbook = RubyXL::Parser.parse('example.xlsx'),另外我將單元格A1的值從4修改爲5並保存。這是問題所在,如果我們在改變之後讀取單元格C1,我們仍然得到以前的結果10. 我如何更新該公式的協議? RubyXL有可能嗎?還是有另一種解決方案?用RubyXL更新公式引用的單元格值

回答

0

最後我解決了這個問題。如果你對我感興趣,我使用了win32ole,因爲在測試了很多rubygems之後,這就是我在問題中所說的那種unic。

require 'win32ole' 

begin 
    xl = WIN32OLE.new('Excel.Application') 
    workbook = xl.Workbooks.Open('my_route') 
    worksheet = workbook.Worksheets(1) 
    # Here we make operations like this one... 
    worksheet.Cells(2,2).value = 2 
    # After any operations we can see the results of referenced cells inmediatly 
    # Save the file if you want 
    # workbook.Save 
    workbook.Close 
rescue => e 
    xl.Quit 
end 

因此,總結RubyXL工作正常,但不反映編輯文件時公式中引用的單元格的結果。 win32ole做到這一點。

0

RubyXL README這聽起來像該實用程序旨在讀取Excel文件,然後寫出它們。然後,當您在Excel中打開文件時,您會看到您的更改和公式將被重新計算。

如果您想進行Excel的COM自動化,您可能需要查看win32ole

+0

我可以看到改變,當我打開文件後,我寫它,但不是公式重新計算。 病態檢查win32ole thx – Pistorius

+1

感謝提示湯姆,win32ole幫助我解決問題 – Pistorius

+0

很酷,我很高興,幫助! –

相關問題