web報(bào)表開發(fā)工具FineReport Excel導(dǎo)入錯(cuò)位
1. 問題描述
同一張模板,通過原樣導(dǎo)出至Excel中,再刷新模板導(dǎo)入該Excel的時(shí)候,發(fā)現(xiàn)導(dǎo)入錯(cuò)位的問題,如下圖所示:
2. 解決思路
這是因?yàn)镕ineReport在7.1版本中新增了一個(gè)雙向?qū)氲墓δ埽碋xcel雙向?qū)耄涮幚磉壿嫲l(fā)生了變化,并對模板中合并的單元格進(jìn)行了處理,導(dǎo)致導(dǎo)入錯(cuò)亂的情況出現(xiàn),那么此時(shí)只需要在模板中導(dǎo)出隱藏行列,并使在導(dǎo)入Excel的時(shí)候,不使用雙向?qū)耄丛谂渲梦募嘘P(guān)閉雙向?qū)耄p向?qū)肽J(rèn)關(guān)閉的,如果開啟了需要關(guān)閉)即可。
3. 操作步驟
3.1 模板準(zhǔn)備
如上效果圖所示,準(zhǔn)備如下圖所示的模板:
參數(shù)面板中有2個(gè)參數(shù):starttime和endtime,其中開始日期的默認(rèn)值為:DATEDELTA(today(), if(tointeger(WEEKDAY($Date)) == 0, -6, 1 - WEEKDAY($Date))),結(jié)束日期的默認(rèn)值為:DATEDELTA(today(), if(tointeger(WEEKDAY($Date)) == 0, 0, 7 - WEEKDAY($Date)))。
DATEDELTA()等函數(shù)的具體含義請查看日期常用處理函數(shù)。
合并B3和C3單元格,其值為:=range($starttime, $endtime),合并D3和E3單元格,其值為WEEKDAY(B3),合并F3和G3單元格,設(shè)置其控件類型為文本控件。
注:模板中要出現(xiàn)合并的單元格。
3.2 導(dǎo)出Excel
保存模板,點(diǎn)擊填報(bào)預(yù)覽,在web端打開該模板,并輸入值班人字段值,如下圖,輸入完成之后,點(diǎn)擊工具欄上的輸出>Excel>原樣導(dǎo)出,如下圖:
此時(shí),就會(huì)導(dǎo)出如上圖所示的Excel。
3.3 導(dǎo)入Excel
回到設(shè)計(jì)器界面,根據(jù)導(dǎo)入行式報(bào)表中的操作步驟,為該模板的工具欄添加導(dǎo)入Excel按鈕,添加完成之后,重新填報(bào)預(yù)覽該模板,點(diǎn)擊導(dǎo)入Excel,選擇剛剛導(dǎo)出的Excel文件,即可看到如下圖所示效果,位置錯(cuò)亂:
3.4 導(dǎo)出隱藏行列
回到設(shè)計(jì)器,點(diǎn)擊模板導(dǎo)出屬性,勾選導(dǎo)出隱藏行和導(dǎo)出隱藏列,如下圖:
3.5 結(jié)果查看
此時(shí)再重新導(dǎo)出Excel,導(dǎo)入Excel,就可以看到位置不會(huì)發(fā)生錯(cuò)亂了。