CSVHelper(27.1.1)書き込み・読み込みサンプル(VS2019で)
経緯と目的等
.net環境でCSVHelperを利用することがあったため、自分用の覚え書きとして残しました。
一応ジェネリッククラス化してあるので、CSVから読み込んだデータをモデルクラスに格納できるし、逆にモデルクラスのListをCSV形式に変換できる。
CSVHelperを使えるようにする
この時の最新はVersion27.1.1でした。
使用するためには、ソリューションエクスプローラー/NuGetパッケージの管理から”CSVHelper”で検索してインストールでOK(詳細は省略)
サンプル
CSVHelperをインストールした前提としますが、以下のコード
CsvHelperWrap.vb
Imports System.IO
Imports CsvHelper
Public Class CsvHelperWrap(Of TYPE)
Public Property CsvConfig As New Configuration.CsvConfiguration(Globalization.CultureInfo.InvariantCulture)
Public Property FilePath As String = ".\file.csv"
Private SWriter As StreamWriter
Private CSVHelpWriter As CsvWriter
Public Sub New()
Me.CsvConfig.HasHeaderRecord = False
End Sub
''' <summary>
''' CSVHelper用のWriteStreamをオープンする
''' </summary>
Public Sub WriteOpen()
SWriter = New StreamWriter(Me.FilePath, True, Text.Encoding.GetEncoding("SHIFT_JIS"))
CSVHelpWriter = New CsvWriter(SWriter, CsvConfig)
End Sub
''' <summary>
''' CSVHelper用のWriteStreamをクローズする
''' </summary>
Public Sub WriteClose()
SWriter.Dispose()
SWriter = Nothing
End Sub
''' <summary>
''' 指定したモデルクラスのListをCSVに書き込む
''' </summary>
''' <param name="dat"></param>
''' <remarks>書き込み後は、手動でクローズする前提だが、オープンだけはしてくれる</remarks>
Public Sub Write(ByVal dat As List(Of TYPE))
Try
If SWriter Is Nothing Then
Call Me.WriteOpen()
End If
CSVHelpWriter.WriteRecords(dat)
Catch ex As Exception
Throw ex
End Try
End Sub
''' <summary>
''' 指定したCSVファイルをモデルクラスのListに読み込む
''' </summary>
''' <returns></returns>
Public Function Read() As List(Of TYPE)
Dim records As New List(Of TYPE)()
Try
Using SReader As New StreamReader(Me.FilePath, Text.Encoding.GetEncoding("SHIFT_JIS"))
Using CSVHelpReader As New CsvReader(SReader, CsvConfig)
records = CSVHelpReader.GetRecords(Of TYPE)().ToList
End Using
End Using
Catch ex As Exception
Throw ex
End Try
Return records
End Function
End Class
Author And Source
この問題について(CSVHelper(27.1.1)書き込み・読み込みサンプル(VS2019で)), 我々は、より多くの情報をここで見つけました https://qiita.com/sandaru/items/4383277a74e9e8387a8d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .