2011-09-15 32 views
1

我正在構建一個ruby類/組件,用於在我的Rails項目中基於Excel .xlsx文件創建報告/導出。使用該組件,我可以打開一個「模板」.xlsx文件,將行中的數據添加到工作表,保存並將文件下載到用戶。它現在已經運行好幾個月了。OOXML - 使用Ruby創建的電子表格(.XLSX)將不會重新計算

現在我需要將預先存在的.xlsx文件(想象爲「form」),將其作爲模板打開,在多個單元格中插入值,然後保存並下載到用戶。這個過程大部分都是有效的。其中一個問題是我用數據更新的單元格之一在一個單元格範圍內,該單元格將SUM函數應用於該單元格。問題:SUM單元格中沒有正確的總和。

我已經在下載時檢查了Excel中的單元格,並且還檢查了底層xml - 單元格及其數據是數字 - 而不是文本。當我嘗試手動重新計算表單時 - nada。我可以更新SUM'd範圍內的其他單元格之一,它神奇地開始工作 - SUM單元格顯示適當的總和。

我今天早些時候讀過一篇文章,提到從總字段中刪除元素,以便在電子表格打開時向Excel發信號,以便重新計算 - 不行。

我真的很想在我進一步瞭解這個組件時開源這個組件;我認爲這對Ruby社區會有很大的幫助。預先感謝任何幫助!

回答

1

聽起來像是你需要將calcPr元素的fullCalcOnLoad屬性設置爲true:

<workbook> 
    <calcPr fullCalcOnLoad="1"/> 
</workbook> 

這將導致Excel文檔的文件被打開時,所有工作簿內執行caluclations。

+0

好的,我會試試。下面是當前xlsx中該元素的樣子:''。看起來我需要添加fullCalcOnLoad屬性,對嗎? – wchrisjohnson

+0

@wchrisjohnson - 是的,我會添加該屬性,看看是否有幫助。 – amurra

相關問題