1. 程式人生 > >解決潤乾報表匯出Excel後0丟失的問題

解決潤乾報表匯出Excel後0丟失的問題

需求背景

今天我們來看一個比較有價值的需求,這個需求中提到的一系列問題我們可能也會遇到並感到難以解決。好,閒話少敘,看一下具體需求:

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效果如下:


    我們可以看到,完全和頁面上顯示的相同。至此我們已經實現了開篇中提到的所有需求。