Как предотвратить удаление начальных нулей при импорте документа Excel с помощью c # - PullRequest
6 голосов
/ 22 августа 2008

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

Ответы [ 8 ]

6 голосов
/ 22 августа 2008

Полагаю, вам нужно установить параметр в строке подключения, чтобы принудительно импортировать текстовый импорт, а не определять его автоматически.

Provider=Microsoft.ACE.OLEDB.12.0;
    Data Source=c:\path\to\myfile.xlsx;
    Extended Properties=\"Excel 12.0 Xml;IMEX=1\";

Ваш milage может отличаться в зависимости от установленной версии. Расширенное свойство IMEX = 1 указывает Excel обрабатывать смешанные данные как текст.

1 голос
/ 24 марта 2009

Существует взлом реестра, который может заставить Excel читать больше первых 8 строк при чтении столбца, чтобы определить тип:

Изменение

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows 

Чтобы быть 0, чтобы прочитать все строки, или другое число, чтобы установить это количество строк.

Не то, чтобы это слегка ухудшило производительность.

1 голос
/ 22 августа 2008

Префикс содержимого ячейки с помощью 'заставляет Excel видеть его как текст вместо числа. 'Не будет отображаться в Excel.

1 голос
/ 22 августа 2008

Префикс с '

0 голосов
/ 01 апреля 2015

Добавьте "\ t" перед вашей строкой. Это приведет к появлению строки в новой вкладке.

0 голосов
/ 26 декабря 2013

Отправка значения 00022556 как '=" 00022556"' с сервера Sql - отличный способ справиться с лидирующей нулевой проблемой

0 голосов
/ 22 августа 2008

Сохранение файла в виде текстового файла с разделителями табуляции также работает хорошо.

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

с префиксом 'сработает, есть ли разумный способ сделать это программно, когда данные уже существуют в Excel Doc?

0 голосов
/ 22 августа 2008

Я думаю, что способ сделать это состоит в том, чтобы отформатировать исходный файл Excel таким образом, чтобы столбец форматировался как текст, а не как общий. Выделите весь столбец, щелкните правой кнопкой мыши и выберите формат ячеек, выберите текст из списка параметров.

Я думаю, что это явно определило бы, что содержимое столбца является текстом и должно рассматриваться как таковое.

Дайте мне знать, если это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...