The Will Will Web | 好用的 LINQ to CSV library

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

好用的 LINQ to CSV library

在做「匯出資料」功能的時候常會使用到 CSV ( Comma Separated Value ) 這種檔案格式,雖然格式並不複雜,但有好用的 Library 當然也能夠更省事啦。

我之前在 PHP 的時候也寫過一個 CSV Parser 也是可以處理許多 CSV 檔案格式不一的問題,例如說用 Outlook 匯出的連絡人 CSV 檔,跟 Excel 另存的 CSV 檔���式就不太一樣,第一次做 CSV Parser 的時候其實還蠻累人的,但是換到 .NET 就很少用 CSV 格式了,我大多用 Excel XML 格式做輸出,因為客戶最終目的還是要用 Excel 開啟匯出的資料。

Matt Perdeck 這位仁兄寫了個 LINQ to CSV library 可以讓你用 LINQ 語法方便的讀取 CSV 格式的檔案,也提供方法寫入 CSV 檔,除了方便好用之外,這個函數庫也十分的有彈性,功能也很強大,有興趣的人可以下載回來玩看看,也許以後會用到。

這套 LINQ to CSV Library 的特色有:

  • 依循最常見的 CSV 檔案格式,且可以正確的處理資料中包括逗號(,)與斷行(\r\n)的問題。
  • 欄位分隔符號可不限於使用逗號(,)或 Tab 符號,你也可以指定自己要用的分隔符號。
    例如:錢字符號 ( $ )、井號 ( # )、... etc.
  • 支援延遲讀取。
    這是 LINQ 的一個特色,可以讓你在定義 LINQ 語法時還不會進行資料的存取
  • 支援存取檔案中的日期與數字格式。
  • 可自動辨識各種不同的日期與數字格式。
  • 可彈性的控制日期與數字的輸出格式。
  • 支援不同的字集編碼 ( Encoding )。
    例如說在 Excel 中你要正確的開啟 CSV 檔你一定要用 Big5 編碼,否則中文會變成亂碼
  • 完善的錯誤處理機制,可讓你快速的找到 CSV 檔案中的錯誤格式。
    這功能很棒,不然檔案很大的 csv 檔要是格式有誤是很難查的!

相關連結