格式導致的Excel導入sql出現(xiàn)異常的解決方法
本來程序是正常運行的,有時候會因為用戶的excel文檔沒有按要求的格式來做,才會出現(xiàn)一些異常情況。本以為這次也是一樣,后來拿到數(shù)據(jù)一看,并沒有發(fā)現(xiàn)什么異常,而且自己又照著做了一些數(shù)據(jù),竟然也會出現(xiàn)異常,只好懷疑是自己的程序有問題了。
常言說的好,最難找的是最后一個錯誤,這話確實不錯。我?guī)缀鮿佑昧宋宜莆盏母鞣N手段,程序上真的沒辦法找出有啥問題了。在一個問題上折騰久了,浪費時間不說,還容易讓自己的情緒低落。到后來,還是轉(zhuǎn)去懷疑用戶的數(shù)據(jù)有問題,無意中做了一下格式調(diào)整,竟然發(fā)現(xiàn)異常不見了。
Excel的單元格格式設(shè)置十分豐富,數(shù)據(jù)一旦被格式化,那你所看到可能已經(jīng)不是廬山真面目了。比如貨幣格式,數(shù)據(jù)本身只是一串數(shù)字,并不會包含貨幣符號。
在我這個程序中,有一列數(shù)據(jù)為編碼,可能是字母和數(shù)字的混合,也可能是純數(shù)字,正常情況下,應(yīng)該設(shè)置成文本格式,可能因為純數(shù)字在這種情況下會有一個錯誤提示,也就是在單元格旁邊出現(xiàn)了一個黃色的感嘆號,用戶大概覺得不對,就設(shè)置成了郵政編碼這種特殊格式,數(shù)據(jù)看起來沒啥變化,但程序在識別的時候就出現(xiàn)了異常。還有一個字段是月份,程序要求在一位數(shù)前補0,如果格式設(shè)置為數(shù)字,前面的0就沒有了,所以必須設(shè)置為文本。如果自定義為:00,雖然在excel下顯示的數(shù)字和想要的一樣,但程序在處理時會當成一個數(shù)字處理,結(jié)果也會不符合要求。
總結(jié)一下,對于要導入到數(shù)據(jù)庫的excel數(shù)據(jù),不要做格式化處理,保持原始的字符或數(shù)字格式是最明智的選擇。
相關(guān)文章
SQL語言查詢基礎(chǔ):連接查詢 聯(lián)合查詢 代碼
SQL語言查詢基礎(chǔ):連接查詢 聯(lián)合查詢 代碼...2007-03-03
centos7部署SqlServer2019的實現(xiàn)步驟
最近工作需要,需要在服務(wù)器上部署一個sql server 數(shù)據(jù)庫,本文主要介紹了centos7部署SqlServer2019的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2024-01-01
沒有SQL Server數(shù)據(jù)庫時如何打開.MDF文件
本文主要介紹了在安裝有Visual Studio 2005或以上的版本的前提下,沒有安裝SQL Server數(shù)據(jù)庫也可以打開.MDF數(shù)據(jù)庫文件的方法,需要的朋友可以參考下2015-08-08
sqlserver中delete、update中使用表別名和oracle的區(qū)別
之所以要用別名,是因為where條件中需要用到子查詢寫一些條件,下面不寫那么復(fù)雜,僅說明一下問題2013-03-03

