Excel, OleDb и ведущие нули

У меня есть процесс, который с помощью OleDb считывает данные из файла Excel в DataSet. Все работало хорошо, пока я не начал видеть данные с ведущими нулями. Текст имеет формат «Общий» или «Текст».

Я установил IMEX = 1 в соединении OleDb, но все равно получаю нулевое значение в наборе данных для каждой записи с начальным 0.

Кто-нибудь знает способ, который РАБОТАЕТ?

Редактировать

В качестве дополнительной информации я ДОЛЖЕН оставить начальные 0, а столбец отформатирован как General. Я также пробовал Text.

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

Excel и ведущие нули - огромная катастрофа

Joe Phillips 13.01.2009 09:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
2 727
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

Посмотрите на одну из ячеек Excel и посмотрите, есть ли у нее нулевая загрузка в полосе ввода данных вверху; или у него есть начальный апостроф или что-то в этом роде?

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

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

Mitchel Sellers 13.01.2009 18:29

Тогда как насчет добавления столбца и установки формулы в значение Val (badcolumn)?

dkretz 14.01.2009 04:04

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

Для столбца уже задан тип текста. Если мне не нужно удалить и повторно вставить данные.

Mitchel Sellers 13.01.2009 18:28

Являются ли ваши первые 10 строк чистыми числовыми данными?

Затем драйвер делает вывод о том, что весь столбец является числовым. Он задыхается, когда сталкивается с данными, которые не подходят. Вероятно, вы видите это как NULL или 0.

Я бы попробовал:
1) скиньте IMEX - поэкспериментируйте без него
2) Попробуйте добавить одинарную кавычку в качестве первого символа ко всем данным в этом столбце. Это «заставляет текст» в Excel. В качестве теста просто попробуйте его на первых 11 рядах. Это должно заставить драйвер видеть столбец как текст. NULL должны исчезнуть.

Есть способ увеличить "размер выборки" строки ... но я не могу вспомнить ключевое слово для использования в строке подключения.

Если вы знаете, как изменить размер выборки в соединении, это было бы здорово. Единственные, которые я нашел, ссылаются на раздел реестра, и это НЕ будет работать для меня.

Mitchel Sellers 14.01.2009 11:44

Другие вопросы по теме