2017-08-08 39 views
0

セル内に値を持つxlsxがあります。それらの多くは他のセルの式で参照されています(同じシート内)。 Imは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を読み込んだ場合、前の結果が残っています。 式にそのアコーディンスを更新する方法はありますか? 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

クール、私は助けてうれしい! –

関連する問題