답변:
CsvHelper를 사용해보십시오 . FastCsvReader만큼 사용하기 쉽고 쓰기도합니다. 나는 과거에 FastCsvReader에 매우 만족했지만, 또한 작성하는 것이 필요했고 FileHelpers에 만족하지 않았습니다.
독서:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
쓰기:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
전체 공개 : 나는이 도서관의 저자입니다.
WriteField
. 여기에서 문서를 확인하세요 joshclose.github.io/CsvHelper
CsvHelper
. 아마도 그 자리에서 다른 읽기 전략을 제공 할 수 있을까요? 그건 그렇고 지금은 관련이
프레임 워크 자체에는 몇 가지 옵션이 있습니다.
가장 쉬운 방법 중 하나는 Microsoft.VisualBasic을 참조한 다음 TextFieldParser 를 사용하는 것 입니다. 핵심 프레임 워크에서 완벽하게 작동하는 CSV 리더입니다.
또 다른 좋은 대안은 데이터 세트를 사용하여 CSV 파일을 읽는 것 입니다.
Sebastien Lorion은 A Fast CSV ReaderCSV
라는 CodeProject에 대한 훌륭한 독자를 보유하고 있습니다. 아마도 C #에 가장 적합한 제품 중 하나이며 무료입니다.
쓰기에 관해서는 StreamWriter
.
다음은 DataGridView
파일 에 쓰기를위한 몇 가지 상용구 코드입니다 .
private void exportDGVToCSV(string filename)
{
if (dataGridView1.Columns.Count != 0)
{
using (Stream stream = File.OpenWrite(filename))
{
stream.SetLength(0);
using (StreamWriter writer = new StreamWriter(stream))
{
// loop through each row of our DataGridView
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string line = string.Join(",", row.Cells.Select(x => $"{x}"));
writer.WriteLine(line);
}
writer.Flush();
}
};
}
}
예-실제로 구체적인 사항을 요구하는 것 같지만?
FileHelpers 사용해보기
수십개가 있습니다.
http://www.filehelpers.net/ 은 가장 일반적인 방법 중 하나입니다.
일부 시나리오에서는 Filehelpers가 제한적이라고 생각하고 대신 The Fast CSV Reader를 사용 합니다. 내 경험상 CSV 파일의 형식을 모르거나 런타임까지 매핑을 가져 오지 않으면 이것이 사용하기에 더 나은 라이브러리입니다.
.net csv library
. 내 주장에 대한 증거는 일화이지만 지난 6 년 동안이 질문이 22000 번 이상 조회되었다는 것입니다.