powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Формат дат и чисел при чтении Excel через ADO
16 сообщений из 16, страница 1 из 1
Формат дат и чисел при чтении Excel через ADO
    #34894408
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключаюсь к листу эксель через строку:

Код: plaintext
1.
2.
3.
4.
		
АДОСоединение=Новый COMОбъект("ADODB.Connection");
АДОСоединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(ИмяФайла)+";Extended Properties=""Excel 8.0;IMEX=1;""";
АДОСоединение.Open();

я хочу чтобы при чтении по ADO дата преобразовывалась в строку YYYYMMDDHHMMSS, а число - строго в NNNNNNNNNNNNNNNNNN.NNNNNNNN т.е. без разделителей триад и с точкой как разделителем дробной части?

Можно ли както на это повлиять в строке подключения, ведь IMEX=1 преобразует все в строку, а если не преобразовывать в строку, то не все ячейки прочитаются... Как быть?
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34894667
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin
я хочу чтобы при чтении по ADO дата преобразовывалась в строку YYYYMMDDHHMMSS, а число - строго в NNNNNNNNNNNNNNNNNN.NNNNNNNN т.е. без разделителей триад и с точкой как разделителем дробной части?

Не очень понятно. Есть формат числа для отображения на клиенте, а есть данные для хранения в БД ( ваше случае excel). И при чтении вы получате то что хранится в базе. А потом форматируете.
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34894822
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-duke
Не очень понятно. Есть формат числа для отображения на клиенте, а есть данные для хранения в БД ( ваше случае excel). И при чтении вы получате то что хранится в базе. А потом форматируете.

Ну я же написал, что подключаюсь к листу эксель через АДО, при таком подключении, как у меня, он преобразовывает все значения ячеек в строку, видимо используя настроенные на клиенте правила преобразования.

А может он преобразовывать в строку в каком-нибудь стандартизованном варианте, чтобы не нужно было проверять локальные настройки компьютера?
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34906385
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужели никто не знает?
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34924583
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ап
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34925056
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
повторю за big-duke
не надо путать формат хранения данных с форматом их отображения

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

есть еще возможность использовать ф-ции преобразования данных (CAST, CONVERT), но это для MS SQL и есть что-то подобное в вашем случае, я не скажу


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34932627
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotповторю за big-duke
не надо путать формат хранения данных с форматом их отображения

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

есть еще возможность использовать ф-ции преобразования данных (CAST, CONVERT), но это для MS SQL и есть что-то подобное в вашем случае, я не скажу


I Have Nine Lives You Have One Only
THINK!


Господи, ну неужели не понятно....
Неужели я так туманно излагаю?
У меня в экселе не таблица, где в каждой колонке однотипные значения...

Поясню на примере.

Допустим я читаю файл:

А B C
1 -1 Маша 14
2 2 Даша 23.14
3 21.10.1975 12 Таня

Как мне через ADO получить дату в колонке А3 или число с дробной частью в колонке С2?
Потому что я через АДО получаю их преобразованными в ТЕКСТ! ПОнимаете, уже преобразованными! Ну если она их преобразовывает, то пусть бы преобразовывало как-то стандартно, чтобы можно было обратно открутить, а то она преобразовывает в зависимости от локальных настроек.

Неужели и сейчас не понятно, о чем речь?
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34932713
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я знаю, то при выборке с экселя, АДО проверяет первые несколько строк и по ним
ориентируется и выставляет тип колонки (текст, число, дата и т.д)

если данные, как у вас, отличаются типом (в колонке А идут целые числа, а потом дата, в колонке С - числовые данные, а потом строка), то он и возвращает как текст

или ?



I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34932985
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotнасколько я знаю, то при выборке с экселя, АДО проверяет первые несколько строк и по ним
ориентируется и выставляет тип колонки (текст, число, дата и т.д)

если данные, как у вас, отличаются типом (в колонке А идут целые числа, а потом дата, в колонке С - числовые данные, а потом строка), то он и возвращает как текст

или ?



I Have Nine Lives You Have One Only
THINK!

Ну вот, вы уже начинаете догадываться. Да, он возвращает как текст. Но я хочу чтобы он както стандартно преобразовывал в текст.
Т.е. числа без разделителей триад и с точкой перед запятой.
А даты - ГГГГММДД, а не как локальная раскладка на душу положит.
Чтобы потом из этой строки можно было получить исходные числа и даты? понимаете?
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34933524
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixinЧтобы потом из этой строки можно было получить исходные числа и даты? понимаете?Понимаем, понимаем. Не надо так волноваться.
Открывай Excel файл через OLE и забудь про ADO. И не надо использовать Эксель для задач баз данных.
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34964914
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl FixinЧтобы потом из этой строки можно было получить исходные числа и даты? понимаете?Понимаем, понимаем. Не надо так волноваться.
Открывай Excel файл через OLE и забудь про ADO. И не надо использовать Эксель для задач баз данных.

Конструктивные ответы будут?
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #34966712
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin big-duke
Не очень понятно. Есть формат числа для отображения на клиенте, а есть данные для хранения в БД ( ваше случае excel). И при чтении вы получате то что хранится в базе. А потом форматируете.

Ну я же написал, что подключаюсь к листу эксель через АДО, при таком подключении, как у меня, он преобразовывает все значения ячеек в строку, видимо используя настроенные на клиенте правила преобразования.

А может он преобразовывать в строку в каком-нибудь стандартизованном варианте, чтобы не нужно было проверять локальные настройки компьютера?
Рискну предположить, что при подключении ч-з АДО подразумевается, что лист Эксель (источник данных) - это все-таки некая БД, а не такая неструктурированная инфа, как у Вас
Fixin
Допустим я читаю файл :
А B C
1 -1 Маша 14
2 2 Даша 23.14
3 21.10.1975 12 Таня

Т.е. есть
Конструктив, по-моему, простой : для чтения данных из файла Эксель исп-ть инструменты для работы с файлами Эксель.
Вы ведь обычные бумажные книги не читаете слева направо?
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #35067212
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кладовщик
Т.е. есть
Конструктив, по-моему, простой : для чтения данных из файла Эксель исп-ть инструменты для работы с файлами Эксель.
Вы ведь обычные бумажные книги не читаете слева направо?

Кладовщик. Почитай внимательно еще раз тему, помедитируй.
И поймешь, что ты оправдываешь огрехи мелкософта.
Типо как если бы японцы думали - подумаешь, что в россии движение левостороннее, не будем мы ради россии выпускать машины с левым рулем.

Что мешает сделать опцию преобразования данных по заданному формату? Лень? Тупость Гейтса? Идиотизм американцев?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Формат дат и чисел при чтении Excel через ADO
    #38237519
herny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перед использованием данных из книги excel с использованием Microsoft.Jet.OLEDB
желательно - открыть книгу и на вкладке Данные, для каждого столбца, используя кнопку "текст по столбцам", указать ширину столбца и тип данных. Тогда не будет использоваться автоматическое преобразование данных из поля к "фиг знает какому" формату.
В данном примере я бы указал тип поля текстовое, а потом в запросе использовал функцию convert
...
Рейтинг: 0 / 0
Формат дат и чисел при чтении Excel через ADO
    #38248495
Igor1965
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, мне помогло!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Формат дат и чисел при чтении Excel через ADO
    #38728313
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже столкнулся с этой проблемой, прочитал с параметрами HDR=NO;IMEX=0:

АДОСоединение.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+СокрЛП(Родитель.ИмяФайла)+";Extended Properties=""Excel 8.0;HDR=NO;IMEX=0;""";

И оно мне прочитало нормально.

А с IMEX=1 преобразовывала длинные строки (серийные номера) в число вида NNNNNE+12.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Формат дат и чисел при чтении Excel через ADO
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]