Есть несколько вариантов, прямо в самой структуре.
Один из самых простых - обратиться к Microsoft.VisualBasic, а затем использовать TextFieldParser . Это полнофункциональный читатель CSV в базовой структуре.
Другой хорошей альтернативой является использование наборов данных для чтения файлов CSV .
У Себастьяна Лориона есть отличный читатель CSV
на CodeProject под названием Быстрый читатель CSV . Вероятно, один из лучших для 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();
}
};
}
}
Их десятки.
http://www.filehelpers.net/ - один из самых распространенных.
Я должен сказать, что в некоторых сценариях я считаю Filehelpers ограничивающим, и вместо этого использую The Fast CSV Reader . По моему опыту, если вы не t знать формат вашего файла CSV или импортировать сопоставление до времени выполнения - это лучшая библиотека для использования.
Да, хотя я предполагаю, что вы действительно спрашиваете подробности?
Попробуйте FileHelpers
Попробуйте CSVHelper . Так же просто использовать как FastCsVReader и также пишет. Я был очень доволен FastCsvreader в прошлом, но мне нужно было что-то, что написано и не было счастливым с FileHelpers.
Чтение:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
Написание:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
Полное раскрытие: Я являюсь автором этой библиотеки.