превзойти DataTable для CSV Zip-коды с дефисами, не показывая с помощью C # OLEDB - PullRequest
0 голосов
/ 31 января 2011

У меня есть таблица Excel, которая содержит адреса. Я читаю данные из электронной таблицы с помощью OLEDB и сохраняю их в DataTable. Затем я перебираю DataTable и создаю свой вывод, который записывается в файл .csv. Я делаю все это в C #.

Вот проблема: при открытии файла .csv все почтовые индексы, которые были написаны через дефис, были заменены на 0.

12345-1234 -> 0

Итак, я хочу исправить это поведение, чтобы почтовый индекс отображался так, как должен. Если бы мне пришлось отрубить цифры после дефиса, это было бы хорошо. Как я могу обеспечить передачу почтового индекса?

Кроме того, я могу что-то сделать в коде, чтобы сохранить первые 0 в почтовом индексе? Почтовые индексы как это:

01234 -> 1234

Есть ли что-то, что я могу сделать в коде, чтобы сохранить ведущие 0?

Ответы [ 3 ]

0 голосов
/ 31 января 2011

Проблема в том, что файлы CSV должны интерпретироваться Excel, и предполагается, что что-то, что выглядит численно, должно обрабатываться в соответствии с числовыми правилами по умолчанию. Исправления, к сожалению, не работают для всех возможных случаев. Вы можете сделать один из следующих вариантов:

  1. Сохраните файл CSV как есть и используйте мастер импорта данных в Excel
  2. Напишите ведущую галочку ' в поле
  3. Запишите поле в виде уравнения ="01234"

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

0 голосов
/ 13 мая 2011

Я только что проверил ваши данные, и этот метод , опубликованный здесь, сработал.

т.е. значение ячейки сохранило свое значение "12345-1234", когда помещено в DataSet. Также ведущие нули отправляются и в DataSet. (почтовый индекс: 00601)

0 голосов
/ 31 января 2011

Если почтовые индексы отформатированы в электронной таблице Excel, вы должны прочитать их, сохранить в памяти и записать все в виде строк. НЕ конвертируйте их в целые числа.

...