當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot easypoi 自定义序号列为空自动忽略行数据问题
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot easypoi 自定义序号列为空自动忽略行数据问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????????我們使用easypoi導入數據時,可能會忽略這一點,只注意到了使用標題所占行數,以及表頭所占行數,很容易忽略到這個問題,這個問題也是測試給我反饋來的問題,一開始我也沒意識到,阿西吧,查閱了好多資料都沒有找到問題所在!
????????我們通常導入導出模板會自定義一個序號列,非實體字段,通常在列首,如下圖:
當我在序號列不寫內容時,此列的數據就會被自動忽略,如果excel表中,所有序號列都沒有內容時,就只會讀取導入第一行數據。
因為在讀取excel表中數據前我們設置了以下內容:
MultipartFile file = entity.getValue();// 獲取上傳文件對象 ImportParams params = new ImportParams(); /*表格標題所占行數*/ params.setTitleRows(2); /*表頭所占據的行數行數,默認1,代表標題占據一行*/ params.setHeadRows(1); params.setNeedSave(true);但是默認主鍵就會變成?序號列??,錄入數據時沒有寫序號列,沒有內容,主鍵都沒有內容怎么可能被讀取進去呢。
所以我們在讀取前在設置一下主鍵就可以完美解決了!
ImportParams params = new ImportParams(); /*表格標題所占行數*/ params.setTitleRows(2); /*表頭所占據的行數行數,默認1,代表標題占據一行*/ params.setHeadRows(1);/*導入excel 把第二列設為主鍵 否則主鍵為空會判定為無效數據不導入*/ params.setKeyIndex(1);params.setNeedSave(true);默認?params.setKeyIndex(0);? 所指的0就是下標,我們的序號列,所以主鍵改成我們實體的必填字段就可以了,完美解決!
文章中若有問題還煩請大家指出~么么么么么么么
.
總結
以上是生活随笔為你收集整理的SpringBoot easypoi 自定义序号列为空自动忽略行数据问题的全部內容,希望文章能夠幫你解決所遇到的問題。