Имя: Пароль:
1C
 
Вытащить дату и время из ячейки Дата-время Excell
0 YF
 
03.04.08
08:49
В Excell  в ячейке содержится дата-время.
При попытке взять оттуда значение методом:
Значение=Excel.Workbooks(1).Sheets(1).Cells(1, 1).Value;
Сообщить(Строка(Значение), "i");
Берется только дата.
Как бы взять еще и время?
1 dk
 
03.04.08
08:53
С каких пор в 7-ке в дате стало время храниться? :)
---
в Excel отформатировать дату в строку и в 7-ке разобрать строку
2 YF
 
03.04.08
08:59
(1) А как это сделать через ОЛЕ?
3 dk
 
03.04.08
09:04
Excel.Str(Excel.Workbooks(1).Sheets(1).Cells(1, 1).Value)
может так? не помню как вызываются функции по OLE
4 YF
 
03.04.08
11:09
Не знаю, как преобразовать к строке в Экселе, поэтому:
Перед чтением меняю формат на основной и потом читаю значение.

Однако дата-время 09.09.2007 9:21:29 читается как число 39334,3899189815.
Как из этого числа вытащить время и дату?

С датой вроде так: Дата("01.01.1900") +  39334 - 2 = 09.09.07
А как время взять?
5 smaharbA
 
03.04.08
11:23
.text
6 YF
 
03.04.08
11:26
(5) Классно, че блин, я до такого раньше не знал.
   Сыпасиба.
7 dk
 
03.04.08
11:26
(5) А если там формат без часов? :)
8 smaharbA
 
03.04.08
11:30
(7) .Value(12)
9 dk
 
03.04.08
11:32
(8) А как все таки функцию вычислить по OLE?
Пробовал app.run(Str(1)), app.worksheetfunction.str(1) - нифига не работает
10 sapphire
 
03.04.08
11:37
(4) А зачем такой гемор? само по себе значение неинтересно понеже есмь число, егда можно использовать
Значение=Excel.Workbooks(1).Sheets(1).Cells(1, 1).Value; // число
Значение=Excel.Workbooks(1).Sheets(1).Cells(1, 1).Text;  // стока 09.09.20079:21:29
11 FN
 
03.04.08
12:05
Я лично делаю так сначала назначаю ячейке формат ДД.ММ.ГГГГ - через .Text получаю только дату, потом назначаю ячейке формат ЧЧ:ММ и также получаю только время

(4) Делаю так, потому что могут быть разные региональные форматы и дата может выглядеть по разному при  общем формате
12 smaharbA
 
03.04.08
12:20
.Text(c.Value, "dd.mm.yyyy hh:mm:ss")
13 smaharbA
 
03.04.08
12:20
(11) на региональные наплевать, просто делать надо правильно
14 YF
 
03.04.08
14:02
(12) А как этот метод применять?
15 dk
 
03.04.08
14:14
(12) угу, спасибо
(14) ДатаСтрокой = Excel.worksheetfunction.Text(Excel.Workbooks(1).Sheets(1).Cells(1, 1).Value, "dd.mm.yyyy hh:mm:ss")
16 smaharbA
 
03.04.08
14:13
Сообщить(Ексель.WorkSheetFunction.Text(ЯчейкаНеЗначениеАРанж,"dd.mm.yyyy hh:mm:ss"))
хотя в адинеске может иначе придется
17 YF
 
03.04.08
14:44
(16) Понял, сыпасиба
18 YF
 
03.04.08
15:04
(16) А может в Экселе есть возможнось выяснить количество строк, а то сейчас для этого использую АДО?
19 YF
 
03.04.08
15:10
+
(18) Уже не актуально, подсмотрел в Считывание данных с Ексельки
20 smaharbA
 
03.04.08
15:12
(19) обломаешься, потом репу будешь чясать
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший