понедельник, 30 июня 2014 г.

CsvHelper

Формат CSV не так прост, как кажется. Формально это просто табличка: столбцы разделены запятыми.

А вот при попытке с ним поработать начинается веселье:

  • Точку в десятичных числах, чтобы разделить разряды, ставят только англосаксы и программисты. Некоторые другие народы могут разделять их запятыми. Американское 10,000,000.03 - это русское 10.000.000,03. И если в системе установлена другая система представления чисел, то Excel сохранит файл, разделив столбцы точками с запятой. Хотя диалог сохранения в Excel будет по прежнему уверять, что сохраняет с запятыми как разделителями
  • CSV - не UNICODE, и по умолчанию сохраняется в текущей кодировке системы.
  • В первой строке - как правило, не данные, а названия столбцов.
Поэтому на C# такие файлы положено читать специальной библиотекой. Текущая версия есть в NUnit, а где-то в версии 3.0 вернутся и атрибуты для маппинга, которые я прикрутил обратно в своём форке.

Комментариев нет:

Отправить комментарий