開源一個CSV解析器(附設計過程 )


在ExcelReport支持csv的開發過程中,需要一個NETStandard的csv解析器。在nuget上找了幾個試用,但都不太適合。

於是,便有了:AxinLib.IO.CSV

 

 先看看怎么用:

 

讀出的數據:

 


回到開始:

步驟一、了解CSV格式規范

參考文章:理解CSV格式規范(解析CSV必備)

 總結:

1)字段分隔符:

,

2)行結束符:

\r\n

3)轉義符:

"

4)出現以上字符的字段需要用轉義符前后括起來

5)轉義符的原義需要兩個轉義符標識

6)文件中的最后一行記錄可以有結尾回車換行符,也可以沒有。

步驟二、定義狀態

通過主流程識別狀態:

 

1)新字段開始 
2)非轉義狀態
3)轉義狀態
4)轉義符原義判定狀態
5)字段結束
6)行結束
7)文檔結束
8)解析失敗

步驟三:通過狀態遷移圖查缺補漏

步驟四:根據狀態遷移圖實現代碼

 詳參見:

 AxinLib.IO.CSV 源碼:https://github.com/hanzhaoxin/AxinLib/tree/master/src/AxinLib.IO.CSV

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM