Библиотека 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.
Более подробную информацию о собранных исключениях смотрите в разделе «Обработка ошибок».