Библиотека LINQ to CSV - Описание файла Csv

ОГЛАВЛЕНИЕ

CsvFileDescription

Методам Read и Write нужны параметры файла, из которого они читают и в который записывают, такие как, содержит ли первая запись названия столбцов.

Как показано в примерах Чтение из файла и Запись в файл, эти параметры помещаются в объект с типом CsvFileDescription, который вы затем передаете методу Read или Write. Это избавляет от использования длинного списка параметров и позволяет использовать одинаковые параметры для многих файлов.

Объект CsvFileDescription имеет такие свойства:

  • SeparatorChar
  • QuoteAllFields
  • FirstLineHasColumnNames
  • EnforceCsvColumnAttribute
  • FileCultureName
  • TextEncoding
  • DetectEncodingFromByteOrderMarks
  • MaximumNbrExceptions

SeparatorChar

Тип:

char (символьный)

Значение по умолчанию:

','

Применяется:

Чтение и запись

Пример:

CsvFileDescription fd = new CsvFileDescription();
fd.SeparatorChar = '\t'; // используется файл с разделителями табуляции

CsvContext cc = new CsvContext();
cc.Write(data, "file.csv", fd);

Символ, используемый для разделения полей в файле. Это может быть запятая для файлов CSV или '\t' для файла с разделителями табуляции.

Вы можете использовать любой символ, за исключением пробельных символов или двойных кавычек (").

QuoteAllFields

Тип:

Bool (логический)

Значение по умолчанию:

False (ложь)

Применяется:

Только запись

Пример:

fd.QuoteAllFields = true; // вынуждает запрос обрабатывать все поля

Когда установлено значение ложь, метод Write только лишь заключает поля данных в кавычки, когда требуется, чтобы избежать путаницы - например, когда поле содержит SeparatorChar или разрыв строки.

Когда установлено значение истина, Write заключает все поля данных в кавычки.

FirstLineHasColumnNames

Тип:

bool (логический)

Значение по умолчанию:

true (истина)

Применяется:

Чтение и запись

Пример:

fd.FirstLineHasColumnNames = false; // первая запись не содержит заголовков столбца

При чтении файла сообщите методу Read, считать ли поля данных в первой записи файла заголовками столбцов.

При записи файла сообщите методу Write, записывать ли заголовки столбцов как первую запись файла.

EnforceCsvColumnAttribute

Тип:

bool (логический)

Значение по умолчанию:

false (ложь)

Применяется:

Чтение и запись

Пример:

fd.EnforceCsvColumnAttribute = true; // используются только поля с атрибутом [CsvColumn] 

Когда установлено значение истина,  метод Read читает только поля данных в общедоступных полях и свойствах с атрибутом [CsvColumn], игнорируя все другие поля и свойства. И Write записывает содержимое только в общедоступные поля и свойства с атрибутом [CsvColumn].

Когда установлено значение ложь, используются все общедоступные поля и свойства.

FileCultureName

Тип:

string (строка)

Значение по умолчанию:

Текущие системные настройки

Применяется:

Чтение и запись

Пример:

fd.FileCultureName = "en-US"; // используется американский формат даты и чисел

Различные культуры используют различные способы записи дат и чисел. 23 Мая 2008 - это 5/23/2008 в США (en-US) и 23/5/2008 в Германии (de-DE). Используйте поле FileCultureName, чтобы сообщить методу Read,Write, как записывать даты и числа в файл. как интерпретировать даты и числа, читаемые из файла, и сообщить

По умолчанию библиотека использует текущие настройки языка/страны в вашей системе. Если ваша система использует Французско-Канадская (fr-CA), библиотека использует эту культуру до тех пор, пока вы не замените ее в параметре FileCultureName.

Библиотека использует такие же имена культур, что и класс .NET "CultureInfo".

TextEncoding

Тип:

Кодировка

Значение по умолчанию:

Encoding.UTF8

Применяется:

Чтение и запись

Пример:

fd.TextEncoding = Encoding.Unicode; // используется кодировка Unicode 

Если вы читаете или записываете файлы на английском языке, нет необходимости устанавливать TextEncoding.

Однако если вы используете другие языки, кроме английского, кодировка символов в ваших файлах может быть проблемой. Вы захотите убедиться, что кодировка, используемая библиотекой, соответствует кодировке, используемой любыми другими программами (редакторами, электронными таблицами), которые имеют доступ к вашим файлам.

Например, если вы записываете файлы с символом евро, вам может понадобиться кодировка Unicode, как показано в примере.

DetectEncodingFromByteOrderMarks

Тип:

bool (логический)

Значение по умолчанию:

true (истина)

Применяется:

Только чтение

Пример:

fd.DetectEncodingFromByteOrderMarks = false; // подавляет выявление кодировки

Связано с TextEncoding. Обычно работает нормально со значением по умолчанию.

Сообщите Read, нужно ли определять кодировку входного файла путем изучения первых трех байтов файла. В противном случае метод использует кодировку, указанную в свойстве TextEncoding.

MaximumNbrExceptions

Тип:

int (целый)

Значение по умолчанию:

100

Применяется:

Только чтение

Пример:

fd.MaximumNbrExceptions = -1; // всегда читает файл полностью перед порождением исключения AggregatedException

Устанавливает максимальное число исключений, которое может быть собрано в AggregatedException.

Чтобы не устанавливать ограничений и читать весь файл независимо от того, сколько вы получили исключений, установите AggregatedException в -1.

Более подробную информацию о собранных исключениях смотрите в разделе «Обработка ошибок».