web報表開發工具FineReport Excel導入錯位
1. 問題描述
同一張模板,通過原樣導出至Excel中,再刷新模板導入該Excel的時候,發現導入錯位的問題,如下圖所示:
2. 解決思路
這是因為FineReport在7.1版本中新增了一個雙向導入的功能,即Excel雙向導入,其處理邏輯發生了變化,并對模板中合并的單元格進行了處理,導致導入錯亂的情況出現,那么此時只需要在模板中導出隱藏行列,并使在導入Excel的時候,不使用雙向導入,即在配置文件中關閉雙向導入(雙向導入默認關閉的,如果開啟了需要關閉)即可。
3. 操作步驟
3.1 模板準備
如上效果圖所示,準備如下圖所示的模板:
參數面板中有2個參數:starttime和endtime,其中開始日期的默認值為:DATEDELTA(today(), if(tointeger(WEEKDAY($Date)) == 0, -6, 1 - WEEKDAY($Date))),結束日期的默認值為:DATEDELTA(today(), if(tointeger(WEEKDAY($Date)) == 0, 0, 7 - WEEKDAY($Date)))。
DATEDELTA()等函數的具體含義請查看日期常用處理函數。
合并B3和C3單元格,其值為:=range($starttime, $endtime),合并D3和E3單元格,其值為WEEKDAY(B3),合并F3和G3單元格,設置其控件類型為文本控件。
注:模板中要出現合并的單元格。
3.2 導出Excel
保存模板,點擊填報預覽,在web端打開該模板,并輸入值班人字段值,如下圖,輸入完成之后,點擊工具欄上的輸出>Excel>原樣導出,如下圖:
此時,就會導出如上圖所示的Excel。
3.3 導入Excel
回到設計器界面,根據導入行式報表中的操作步驟,為該模板的工具欄添加導入Excel按鈕,添加完成之后,重新填報預覽該模板,點擊導入Excel,選擇剛剛導出的Excel文件,即可看到如下圖所示效果,位置錯亂:
3.4 導出隱藏行列
回到設計器,點擊模板導出屬性,勾選導出隱藏行和導出隱藏列,如下圖:
3.5 結果查看
此時再重新導出Excel,導入Excel,就可以看到位置不會發生錯亂了。