Excel SUM公式失效 顯示為0 (excel sum formula returns zero)

 情境:

這個issue的情況是,我們使用aspose取代範本內的一些參數,範本內有使用SUM()公式去計算某些欄位,不過神奇的事情發生了,用「office365」開啟產生的檔案,SUM()公式可以正常功能,顯示出家總的數字,可是如果用「excel 2013」開啟,SUM()公式欄位卻沒有任何變化,總是顯示為0。

這些欄位「數字存儲為文本」,且有開啟自動計算欄位,所以當下真的不知道到底發生了什麼,只知道不同版本的excel開啟檔案有不同結果。

猜測原因:

我覺得有可能是因為版本公式計算的載入時機不同導致了這個問題,有可能「excel 2013」公式計算是同步執行的,因為在SUM()的時候,需被程式取代為數字的欄位還未被執行,因此還是文本格式,導致公式失效。

而「office365」有可能是非同步執行,又或者「office365」在檔案載入後會自動再執行一次公式計算,因此可以正常運作。

解決方法:

再需被計算的欄位已被程式取代後,再做一次公式計算「workbook.CalculateFormula()」即可解決這個問題。



留言

這個網誌中的熱門文章

[Visual Studio]位於網際網路或是限制區域上 或是檔案上標有 web 字樣 所以無法處理該檔案。若希望處理這些檔案 請移除 web 字樣。

[IIS] IIS執行時,發生拒絕存取路徑 問題

[windows] xcopy 備份至 「網路磁碟機」