日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java excel 导入 加校验_POI实现excel各种验证和导入的思路总结

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java excel 导入 加校验_POI实现excel各种验证和导入的思路总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

制定標準

導入總是與導出相輔相成的,無規矩不成方圓。所謂的標準都是大家一同來維護和遵守的,那么首先就是制定一個模板。

這樣可以減少驗證的工作量。

例如時間的規范【yyyy-MM-dd】,獲取單元格的時間值用下面的方法

java.util.Date date= cell.getDateCellValue();

但是如果用戶不合法輸入,那么將會報IllegalStateException異常,此時我們可以進行錯誤的捕獲和處理

導入的前提的數據是合法的,因此驗證數據是非常必要的,數據的格式就要大家要遵守了。但是嚴謹而已,還是必須考慮用戶的非法操作。

模板的標識

每個模板都有對應的標識,不可能隨便什么數據都可以往數據庫表對象中塞的,因此要設計一個標識符用于區分模板。

標識符必須是唯一的,可以識別的。通常都是指定導入對象的主鍵為標識符。

模板校驗

如果模板限定了可以編輯區域,那么只是需要驗證標識符即可。但是往往我們需要復制大量的數據,因此不可能設置保護模式,這個時候需要對模板進行格式校驗。

校驗包括模版格式校驗、數據合法性校驗,數據范圍校驗等等。

如果各種校驗都用java程序來判斷,那么數據量很大的時候,處理和執行速度會非常的慢。經過幾天研究,發現善于利用oracle的語句可以使效率提高幾十倍,前提

是數據都放在數據庫中。

因此,除了簡單的檢驗之后,我們可以將excel的數據放入到數據庫創建的臨時表或者日志表中,進行數據的校驗。

創建的數據臨時表必須滿足兩個條件,第一是含有模板標識符,第二是有一列指標用于存與excel對應的行數。

這樣方便返回錯誤詳細信息,告訴用戶哪行哪列數據出現問題。

下面是幾種簡單的校驗,非常實用:

@ 檢驗excel的數據是否重復(數據重復的標準是某幾列的值是否相等,即數據唯一標識)

我們不需要循環excel一一對比,我們完全可以使用oracle函數實現數據重復檢查

select distinct substr(數據唯一標識列數據) as rn from 數據臨時表 a

where rowid !=(select max(rowid) from 數據臨時表 b where 數據唯一標識列數據相等

得到的數據是去除重復的數據,只要小于總條數(excel的行數lastRow),那么就可以知道重復的數據。

@ 檢驗導入的數據是否已經存在

select columns from 數據正式表 INTERSECT (select?columns from 數據臨時表 where ..);

只要rs.next(),那么證明存在數據,并且可以獲取到重復的數據。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java excel 导入 加校验_POI实现excel各种验证和导入的思路总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。