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

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

因而,便有了:AxinLib.IO.CSVgithub

 

 先看看怎麼用:

 

讀出的數據:.net

 


回到開始:

步驟1、瞭解CSV格式規範

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

 總結:開發

1)字段分隔符:文檔

,

2)行結束符:get

\r\n

3)轉義符:源碼

"

4)出現以上字符的字段須要用轉義符先後括起來it

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

6)文件中的最後一行記錄能夠有結尾回車換行符,也能夠沒有。

步驟2、定義狀態

經過主流程識別狀態:

 

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

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

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

 詳參見:

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

相關文章
相關標籤/搜索