1. 描述
在實際應用中,有的單元格可能內容較多,如何能做到內容超出一定長度顯示省略號(...),當鼠標移動到單元格的時候,顯示全部內容呢?
2. 解決方案
2.1 方法一(直接用 FineReport 公式實現)
1)在A2單元格輸入一段文字如:對單元格設置超過一定長度頁面顯示...,鼠標放上去顯示全部值。
2)在單元格形態,給單元格設置公式形態,if(len($$$)>5,left($$$,5)+'...',$$$),當單元格內容長度超過 5 位時,顯示內容前 5 位加上省略號(...),當單元格內容長度小於等於 5 位時,顯示全部內容:
3)在單元格其他屬性,內容提示設置為=$$$,如下圖:
設置完成后,即可實現效果。
2.2 方法二(JS 實現)
1)在 A2 單元格輸入一段文字如:對單元格設置超過一定長度頁面顯示...,鼠標放上去顯示全部值。
2)點擊模板>模板web>分頁預覽設置,添加加載結束事件,如下圖:
JS 代碼如下:
//獲取到 td 中的字符串,截取字符串 $("td[title^=cut]").each(function(){ //獲取屬性的值 var str = $(this).attr('title'); //定義分隔符號 var length = parseInt(str.split(":")[1]); //判斷長度 if($(this).text().length > length){ $(this).attr('title',$(this).text()); $(this).text($(this).text().substring(0,length)+'...'); }else $(this).removeAttr('title'); })
3)在 A2 單元格其他屬性,內容提示輸入:cut_+A2+:+5,cut_+A2+:+5中,A2 是單元格的位置;5 是顯示的個數;冒號是英文符號,且前后需要使用+進行拼接,如下圖:
設置完成后,即可實現效果。
PS:使用第一種方式最簡單,但是導出excel內容也回帶"...",所以使用第二種方式(JS 實現)