Ответы:
Попробуйте 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 .
У Себастьяна Лориона есть отличный CSV
читатель на CodeProject под названием A Fast CSV Reader . Вероятно, один из лучших для 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
. Свидетельства, хотя и анекдотические, в пользу моего утверждения заключаются в том, что за последние шесть лет этот вопрос рассматривался более 22000 раз.