javascript
SpringBoot easypoi 自定义序号列为空自动忽略行数据问题
????????我們使用easypoi導(dǎo)入數(shù)據(jù)時(shí),可能會(huì)忽略這一點(diǎn),只注意到了使用標(biāo)題所占行數(shù),以及表頭所占行數(shù),很容易忽略到這個(gè)問題,這個(gè)問題也是測試給我反饋來的問題,一開始我也沒意識(shí)到,阿西吧,查閱了好多資料都沒有找到問題所在!
????????我們通常導(dǎo)入導(dǎo)出模板會(huì)自定義一個(gè)序號(hào)列,非實(shí)體字段,通常在列首,如下圖:
當(dāng)我在序號(hào)列不寫內(nèi)容時(shí),此列的數(shù)據(jù)就會(huì)被自動(dòng)忽略,如果excel表中,所有序號(hào)列都沒有內(nèi)容時(shí),就只會(huì)讀取導(dǎo)入第一行數(shù)據(jù)。
因?yàn)樵谧x取excel表中數(shù)據(jù)前我們?cè)O(shè)置了以下內(nèi)容:
MultipartFile file = entity.getValue();// 獲取上傳文件對(duì)象 ImportParams params = new ImportParams(); /*表格標(biāo)題所占行數(shù)*/ params.setTitleRows(2); /*表頭所占據(jù)的行數(shù)行數(shù),默認(rèn)1,代表標(biāo)題占據(jù)一行*/ params.setHeadRows(1); params.setNeedSave(true);但是默認(rèn)主鍵就會(huì)變成?序號(hào)列??,錄入數(shù)據(jù)時(shí)沒有寫序號(hào)列,沒有內(nèi)容,主鍵都沒有內(nèi)容怎么可能被讀取進(jìn)去呢。
所以我們?cè)谧x取前在設(shè)置一下主鍵就可以完美解決了!
ImportParams params = new ImportParams(); /*表格標(biāo)題所占行數(shù)*/ params.setTitleRows(2); /*表頭所占據(jù)的行數(shù)行數(shù),默認(rèn)1,代表標(biāo)題占據(jù)一行*/ params.setHeadRows(1);/*導(dǎo)入excel 把第二列設(shè)為主鍵 否則主鍵為空會(huì)判定為無效數(shù)據(jù)不導(dǎo)入*/ params.setKeyIndex(1);params.setNeedSave(true);默認(rèn)?params.setKeyIndex(0);? 所指的0就是下標(biāo),我們的序號(hào)列,所以主鍵改成我們實(shí)體的必填字段就可以了,完美解決!
文章中若有問題還煩請(qǐng)大家指出~么么么么么么么
.
總結(jié)
以上是生活随笔為你收集整理的SpringBoot easypoi 自定义序号列为空自动忽略行数据问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。