需求背景
今天我們來看一個比較有價值的需求,這個需求中提到的一系列問題我們可能也會遇到並感到難以解決。好,閒話少敘,看一下具體需求:
1、 報表中的0.XXX導出Excel後0丟失,變成了.XXX,如0.5變成.5;
2、 報表數據集中數據有存在空和0的數據,在報表顯示的時候要求空值不顯示,0值顯示0,當前都顯示爲0;
3、 橫向和縱向分組後,要求沒有數據記錄的單元格顯示爲空
4、 整數只顯示整數,小數保留一位小數
問題分析
1、 由於導出的Excel單元格類型爲“自定義”,該格式下的首0會自動截去,這是正常現象,當然我們可以通過設置顯示格式來解決,稍後我們看具體實現;
2、 目前報表分組後對於空值和0值的顯示結果是相同的,即都爲0,這點我們可以通過表達式判斷來解決,稍後看具體實現;
3、 對於橫向縱向分組交叉後在數據集中沒有記錄的單元格,要顯示爲空,我們也可以通過表達式判斷來解決。
接下來,我們看一下具體實現。
實現步驟
我們來看一下數據的情況,涵蓋比較全面:
我們在來看一下按照正常做法寫表達式後的顯示結果:
接下來我們看一下表達式和顯示格式是如何設置的:
B1:=ds1.group(day)
A2:=ds1.group(name)
B2:=if(ds1.day==B1 && ds1.name==A2,if(ds1.num==null,”",ds1.sum(num)),”")
B2顯示格式表達式:if(isnumber(str(value())),if(value()==int(value()),”#0″,”#0.0″),”#”)
這樣設置後的顯示效果如下:
導出的Excel效果如下:
我們可以看到,完全和頁面上顯示的相同。至此我們已經實現了開篇中提到的所有需求。
文章來至:http://www.runqian.com.cn/archives/4601.html/