CSV文件出現莫名,,,,,

 

    爲了讓項目更加完善,提升用戶感知,需要提供批量導入數據的功能,讓用戶將大量數據直接寫入文件,然後上傳文件到系統,由系統完成批量數據導入的操作,考慮到實際情況,選擇使用CSV文件作爲文件上傳格式,實際使用中遇到了一些CSV文件的問題,記錄如下:

1.爲什麼選CSV文件

      逗號分隔值(Comma-Separated Values,CSV,有時也稱爲字符分隔值,因爲分隔字符也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。純文本更加方便操作,notpad可以直接打開寫入,因爲某些時候,計算機上可能沒有安裝Office或者WPS;另外,CSV可以用Office或者WPS打開,可以以表格的形式操作,和Excel一樣,非常方便用戶批量添加數據,快速複製等功能與Excel文檔沒有區別;最重要的是,可以簡化開發,直接以文本格式讀取,然後通過“逗號”分割數據,切割提前數據非常方便。

2.遇到的問題:

      有時候,系統讀取CSV文件報錯,導入不了數據,而有時候又正常。經過分析對比,發現是CSV文件有問題,這個問題非常隱蔽,不容易發現,詳細分析如下。

 

2-1.下面這個是正常的CSV文件,用Excel或者notpad都可以打開,notpad中數據是以“逗號”分開的。

2-2.下面是有問題的CSV文件,先用notpad打開,仔細看,最後一行,沒有數據,只有4個“逗號”,如果用Excel打開,就看不見最後那條數據(就是全部是“逗號”那條),表面一共4條數據,實際卻有5條數據,所以系統讀取CSV文件批量導入數據會出錯。

3.問題實質

      其實這是Excel的問題,Excel爲了提供了豐富強大的功能,實際上在文件中保存了一些額外的信息,這個和Word一樣的,我們用WPS打開doc文檔,有些功能樣式WPS不支持,文檔就會亂,因爲那些額外的信息WPS處理不了,又不能刪除,因爲那也是文件的一部分。同樣的,看下面這張圖,我們在第5行,什麼數據也不輸入,但是標一個黃色,這樣用notpad打開後,黃色標記notpad不支持,但是確實有數據,所以是一共是5條數據(多了全部是“逗號”那條,見上面那張圖),同時,雖然notpad雖然不支持,但是它也盡力去讀取這條數據,造成只有黃色標記的這行數據亂了,我們再用Excel打開,會發現只有4條數據(見最後那張圖),黃色標記的那條不見了(被notpad修改了數據)。這樣,當用戶用Excel操作時,就可能不小心加入了額外的樣式和特效,表面上沒有問題,但是,實際上卻存在非法格式數據,造成系統讀取數據失敗,批量導入失敗。所以要提醒用戶,上傳文件前,需要通過notpad檢查數據,及時去掉額外的數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章