Страница 1 из 1

Искажение формата даты при выводе в Ёксель

Добавлено: 30 янв 2007, 18:07
_Tosha_
Привет люди, может и боян, прогаю на VIPе совсем недавно, но, надеюсь, кто поможет разобраться.
Проблема такая:
xlSTWriteToMatrix(tableindex, 2, t.dogovor.ddoc)
выводит не поддаваясь никакому узакониванию то в формате DD/MM/YYYY то в формате MM.DD.YYYY причем в первом случае формат ячейки общий а во втором- дата. Ну че за хрень, всякие там datetostr, to_char не помогают, пробовал. Причем в из базы все берется правильно, а ексель чето сам додумывает гад....

SOS!!!

Добавлено: 30 янв 2007, 18:48
m0p3e
Формат ячейки принудительно укажи.
xlSetNumberFormat ( 'ДД.ММ.ГГГГ', 6, i, MaxExcelRow, i );

Добавлено: 30 янв 2007, 19:30
_Tosha_
формат ячейки теперь везде одинаковый, но все равно глючит. Прикольно, но если число месяца >12 то все работает, если меньше, то путает число и месяц, и меняет их местами... И ваще некоторые номера договоров типа 12/6003 пытается понять как дату! бред какой то
:???:

а вообще каким шаблоном можно задать текстовый формат ячейки?

Добавлено: 30 янв 2007, 19:46
_Tosha_
все, разобрался.... нельзя екселю давать мудрить... =)

Добавлено: 31 янв 2007, 13:01
m0p3e
Все замечательно работает. Только задавай формат принудительно всегда. Тестовая ячейка '@'

Добавлено: 31 янв 2007, 17:27
_Tosha_
большое спасиба!

Re: Искажение формата даты при выводе в Ёксель

Добавлено: 08 фев 2011, 10:51
Шевцов Владимир
то же самое.
случилось неожиданно
отчетом пользовались год
а глючить начал сейчас. ДД и ММ Excel 2007 местами меняет.
установка формата ячейки в текст помогла
спасибо форумчанам.

Re: Искажение формата даты при выводе в Ёксель

Добавлено: 08 фев 2011, 11:14
m0p3e
Даты выводить через текст уже не модно.
Теперь пользуемся функциями:
Для прямого вывода:
Function XLSETCELLDATEVALUE(date, longint, longint, longint, longint) : boolean;
Для матриц:
Function XLDTWRITETOMATRIX(longint, longint, date) : boolean;
Function XLDTWRITETOMATRIXEX(longint, longint, longint, date) : boolean;