|
Не корректно выгружаются данные из эксель | ☑ | ||
---|---|---|---|---|
0
bebibo
10.04.20
✎
13:11
|
При чтении файла эксель колонка "ДатаРождения" (с форматом - дата) - читается как строка.
Вот данный код, который читает: Попытка Excel = Новый COMОбъект("Excel.Application"); WB = Excel.Workbooks.Open(ПутьКФайлу); WS = WB.Worksheets(1); arr = WS.UsedRange.Value; WB.Close(0); Исключение Предупреждение("Внимание! Файл не открыт."+Символы.ПС+"Попробуйте открыть и пересохранить данный файл программой Excel."); Возврат; КонецПопытки; МассивКолонок = arr.Выгрузить(); С чем это может быть связано? |
|||
1
bebibo
10.04.20
✎
13:13
|
(0) получаю так: ДатаРождения =МассивКолонок.Получить(4).Получить(строкаТП);
и эту переменную невозможно преобразовать ни к числу, ни к дате! она строка, хотя в экселе она дата |
|||
2
Делопроизводитель
10.04.20
✎
13:14
|
напиши парсер строки в дату
|
|||
3
mikecool
10.04.20
✎
13:17
|
(1) в начале строки нет спец или служебных символов?
|
|||
4
bebibo
10.04.20
✎
13:19
|
(3) нет
|
|||
5
Делопроизводитель
10.04.20
✎
13:19
|
Функция элВыделитьСловоТочка(ИсходнаяСтрока)
Буфер = СокрЛ(ИсходнаяСтрока); ПозицияПослПробела = Найти(Буфер, "."); Если ПозицияПослПробела <2 Тогда ИсходнаяСтрока = ""; Возврат Буфер; КонецЕсли; ВыделенноеСлово = СокрЛП(Лев(Буфер, ПозицияПослПробела-1)); ИсходнаяСтрока = Сред(ИсходнаяСтрока, ПозицияПослПробела + 1); Возврат ВыделенноеСлово; КонецФункции ДатаСтр=ДатаСтр0; День_Стр=элВыделитьСловоТочка(ДатаСтр); Месяц_Стр=элВыделитьСловоТочка(ДатаСтр); Год_Стр=элВыделитьСловоТочка(ДатаСтр); Если СтрДлина(Год_Стр)>4 Тогда Если ((КодСимвола(Год_Стр,3)>=48)) и ((КодСимвола(Год_Стр,3)<=57)) тогда Год_Стр = Лев(Год_Стр,4); Иначе Год_Стр = Лев(Год_Стр,2); Конецесли; КонецЕсли; Попытка День_Числ=Число(День_Стр); Месяц_Числ=Число(Месяц_Стр); Год_Числ=Число(Год_Стр); Если Год_Числ<100 Тогда Если Год_Числ<15 Тогда Год_Числ=Год_Числ+2000; Иначе Год_Числ=Год_Числ+1900; КонецЕсли; КонецЕсли; ДатаВвода=Дата(Год_Числ,Месяц_Числ,День_Числ,0,0,0); Исключение ОшбкаДатыввода=Истина; КонецПопытки; |
|||
6
bebibo
10.04.20
✎
13:33
|
(5) не понятно как работает код ниже функции
|
|||
7
bebibo
10.04.20
✎
13:35
|
(6) вот это что:
ДатаСтр=ДатаСтр; День_Стр=элВыделитьСловоТочка(ДатаСтр); Месяц_Стр=элВыделитьСловоТочка(ДатаСтр); Год_Стр=элВыделитьСловоТочка(ДатаСтр); |
|||
8
Делопроизводитель
10.04.20
✎
13:59
|
(7) разбивание строки по точкам на части.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |