[c#] C # 용 CSV 파서 / 리더? [닫은]

자유 라이선스하에 사용 가능한 CSV 파서의 훌륭하고 무료 구현이 있습니까? Java 용 SuperCSV의 일부 , 아마도 포트?



답변


답변

CodeProject에 멋진 구현이 있습니다 .

145 개의 필드와 50,000 개의 레코드를 포함하는 45MB CSV 파일로 더 많은 정보를 제공하기 위해 독자는 약 30MB / 초를 처리했습니다. 전체적으로 1.5 초가 걸렸습니다! 기계 사양은 P4 3.0GHz, 1024MB입니다.


답변

CSV 파일을 DataTable에로드 할 수 있습니다.

샘플 코드-

static DataTable CsvToDataTable(string strFileName)
{
    DataTable dataTable = new DataTable("DataTable Name");

    using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Directory.GetCurrentDirectory() + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\""))
    {
        conn.Open();
        string strQuery = "SELECT * FROM [" + strFileName + "]";
        OleDbDataAdapter adapter =
            new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
        adapter.Fill(dataTable);
    }
    return dataTable;
}

프로젝트를 x86 프로세서로 컴파일해야합니다. x64에서는 작동하지 않습니다.


답변

filehelpers 사용해 보기 놀랍도록 잘 작동합니다. 매일 100MB 파일을 구문 분석하는 데 사용하고 있습니다.


답변

FileHelpers 라이브러리를 사용해 보셨습니까? 무료 오픈 소스이며 CSV 파일을 구문 분석하는 데 사용할 수 있습니다.


답변

CommonLibrary.NET의 일부인 CSV 파서를 사용하기 시작했습니다 .

그것은 .NET 3.5를 사용하고, 쉬운 API를 가지고 있으며, 반복을위한 편리한 오버로드 / 방법 및 람다를 가지고 있습니다.

위와 같은 벤치 마크는 없지만 이것에 대한 좋은 점은 Java Commons와 유사한 라이브러리의 한 구성 요소 일 뿐이라는 것입니다. 그래서 다른 것들 중에서도 명령 줄 파서, 저장소 구현을 얻습니다.


답변