v7: Не могу получить дату из екселя в йоксель #616601


#0 by Zhuravlik
Здравствуйте. В экселе дата - 14.05.2012 12:17 (формат ячейки ММ.ДД.ГГГГ ч:мм), при считывании значения этой даты (обл.Текст) возвращается вот такое значение: 41043.512257. А мне нужно получить дату, НЕ залазия в эксель, и не исправляя формат ячейки. Что значат эти цифры? Я думал кол секунд, но нет...
#1 by andrewks
#2 by andrewks
а что возвращает value?
#3 by Zhuravlik
Я загружай файл Йокселем, там нет такого метода.
#4 by Zhuravlik
"На самом деле любую дату Excel хранит и обрабатывает именно так - как число с целой и дробной частью. Целая часть числа (38998) - это количество дней, прошедших с 1 января 1900 года (взято за точку отсчета) до текущей даты. А дробная часть (0,65417), соответственно, доля от суток (1сутки = 1,0) Из всех этих фактов следуют два чисто практических вывода: Во-первых, Excel не умеет работать (без дополнительных настроек) с датами ранее 1 января 1900 года. Но это мы переживем! ;) Во-вторых, с датами и временем в Excel возможно выполнять любые математические операции. Именно потому, что на самом деле они - числа! А вот это уже раскрывает перед пользователем массу возможностей." Жаль, жаль... что нельзя прочесть готовую дату( И когда я к 1 января 1900 прибавляю целую часть числа, у меня не экселевское значение для даты, то + день, то минус 2 дня....
#5 by antoneus
На демоконфе Йокселя попробовал - всё ок грузит.
#6 by Mikeware
Есть. У области. Даты грузит нормально.
#7 by Zhuravlik
Что именно грузит?? Я загружаю в 1С файл экселя, где дата+время представлена числом миллисекунд. Как ее увидеть в 1С? Есть "Значение", которое возвращает то же самое, что и показывает мне фрейм, когда ф вывожу на просмотр таблицу, закгруженную из конвертора. То есть число с дробью, а не строку где дата _пробел_ время.
#8 by Ёпрст
в экселе выстави, что тип ячейки текст и грузи в 1с как текст
#9 by antoneus
Формат ячейки Excel - дата, ДД.ММ.ГГГГ ЧЧ:ММ. Йоксель.КонвертерВТаблицуЗначений, грузит дату в таблицу значений, в отладчике ТипЗначенияСтр(ТЗ.ПолучитьЗначение(1,1))="Дата".
#10 by Zhuravlik
Грузить будет бухгалтер. Я не хочу чтобы он там случайно где-нибудь нажал пробел, или удалил ячейку. А время? Время тоже нужно... А можно в 1С как-нибудь программно пересохранить файл экселя в csv? Не хочу, чтобы бухи даже просто открывали файл перед выгрузкой.
#11 by Zhuravlik
хотя время можно будет потом пересчитать из дробной части... спасибо, сейчас попробую еще раз.
#12 by Zhuravlik
Нет, выходит тз с такой же бедой... Вместо даты - число с дробью.
#13 by Ёпрст
пробуй в конвертере отключить распознавание числовых ячеек
#14 by Zhuravlik
Конвертер.Открыть(ИмяФайла) возвращает КнигуЗагрузчика, а как получить книгу конвертера?
#15 by Zhuravlik
А, все, нашел..
#16 by Zhuravlik
то же самое
#17 by Ёпрст
а как в хоть работает ?
#18 by Zhuravlik
не пробовал, но сработает судя по тому, что если я сохраняю в csv - все нормально. Теперь нужно найти способ как программно сохранить файл екселя в csv.
#19 by Mikeware
ADO. Или DTS
#20 by Zhuravlik
Решил))     Сохраняю экселевский файл в csv, где все выглядит так, как надо. Может пригодится кому: У метода SaveAs(прИмяВремФайла, 6), второй параметр - формат сохраняемого файла, причем если пишу формат отсюда , это не работает. Чтобы узнать эту цифру сохранил файл екселя в csv, и открыл его программно, а затем Сообщить(Книга.FileFormat)
#21 by Mikeware
Блинн. нетленка, йоптыть... ты еще запатентуй.... зы. То, что указанные тобой XlFileFormat - символьные представления xbckjds[ констант - известно всем желающим...
#22 by Zhuravlik
Мне известно не было, к чему такая язвительность? По-моему это хороший тон к своему вопросу писать его решение. Тем более если сам его нашел, т.е. в ветке мне никто не посоветовал пересохранить файл екселя методами Excel.Application.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С