powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / неправильная запись даты
13 сообщений из 13, страница 1 из 1
неправильная запись даты
    #38212408
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Win(7,XP),VFP9,Excel2003
ячейка Excel имеет формат дата тип *14.03.2001
введено значение 13.03.2013
команда в VFP
SET DATE TO GERMAN
.SAVEAS("xxxxxx.csv",6)
просматриваешь файл записано 3/13/2013
Почему, и как найти по какому формату происходит запись в файл csv?
...
Рейтинг: 0 / 0
неправильная запись даты
    #38212514
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SET DATE TO GERMAN это команда фоксу выводить дату в формате ДД/ММ/ГГГГ
.SAVEAS("xxxxxx.csv",6) выполняет эксель и он понятия не имеет чего там в фоксе.
Надо формат как-то сообщать экселю.

Поэксперементируй в экселе, попробуй добиться чтобы он сохранил как тебе надо.
Как вариант, попробовать сменить формат внутри экселя, сделать формат ячейки "текстовый". Или еще что-то в этом направлении.

С другой стороны если он всегда сохраняет в ММ/ДД/ГГГГ то просто учитывай это при чтении, делай SET DATE TO AMERICAN перед чтением этого файла.
...
Рейтинг: 0 / 0
неправильная запись даты
    #38212573
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
меняешь в экселе формат на текстовый, пишет какое то число..., dtoc(cells()), даёт нормальную дату, но я не знаю, как найти конец записей в эксель, чтоб пройтись по всем ячейкам и сменить формат и значение... , когда в командном окне даёшь комаду
.cells(1,1).Value="1/2/3" , то
?.cells(1,1).Value &&показывает 2.01.03
Можно наверное сравнивать эти значения и преобразовывать формат по этому шаблону...
...
Рейтинг: 0 / 0
неправильная запись даты
    #38213106
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1,

Я суть не понял... Ты пытаешься экспортировать данные из Excel-файла в текст, с помошью VFP и автоматизации?
...
Рейтинг: 0 / 0
неправильная запись даты
    #38213405
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присылают ото всюду файлы в формате Excel(разных версий), из всех вариантов экспорта из Excel в различные типы файла, мне этот(CSV) показался более приемлимым, но дату экспортирует когда правильно, когда не правильно, не стал разбираться, просто тупо из VFP в каждой ячейке, поменял формат на текстовый (Column().numberformat тоже не проходит....)
...
Рейтинг: 0 / 0
неправильная запись даты
    #38213436
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1 но я не знаю, как найти конец записей в эксель, чтоб пройтись по всем ячейкам и сменить формат и значение... Это поможет? 8287702
...
Рейтинг: 0 / 0
неправильная запись даты
    #38213454
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать для экспорта DTOS()?

И ещё: дата в Excel - это число, в самом Excel отображение этого числа зависит от настроек формата ячейки, а вот при обработке внешним приложением - интерпретация этого числа зависит от того, как ты подключился к файлу-источнику.

Но самое неясное - ты Фоксом изменяешь файл Excel, подключившись к объекту-приложению, и сохраняешь (экспортируешь) тоже методами самого Excel? Фокс здесь зачем?
...
Рейтинг: 0 / 0
неправильная запись даты
    #38213479
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonny540q1w1e1 но я не знаю, как найти конец записей в эксель, чтоб пройтись по всем ячейкам и сменить формат и значение... Это поможет? 8287702 Здесь это не поможет.
А поможет что-то типа этого:
Код: sql
1.
2.
3.
xlCellTypeLastCell = 11
?.UsedRange.SpecialCells(xlCellTypeLastCell).Row
?.UsedRange.SpecialCells(xlCellTypeLastCell).Column
...
Рейтинг: 0 / 0
неправильная запись даты
    #38213822
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMНо самое неясное - ты Фоксом изменяешь файл Excel, подключившись к объекту-приложению, и сохраняешь (экспортируешь) тоже методами самого Excel? Фокс здесь зачем?

Ну я пришел к этому формату в результате проб и ошибок.... :-) Перебор ячеек экселя из фокса. когда заполнено за 50000 ячеек, очень долгий процесс(по крайне мере на моей машине), Impot из экселя(или APPEND FROM), тоже не не совсем удачный вариант(по моему мнению), т.к. нет единого формата(не понятно в какой версии делаи файл экселя), поэтому минимум команд открыл, записал как CSV, и далее в фоксе APPEND FROM TYPE CSV, мне показалось так удобней....:-)


PS: Я тоже использовал UsedRange для определения области заполнения...:-)
...
Рейтинг: 0 / 0
неправильная запись даты
    #38213911
MelnikA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2q1w1e1
Приветствую !

Я в последнее время вынимаю данные из XLS файлов с помощью ОДБЦ .
nconnect=SQLCONNECT('Excel Files;Dbq='+cfilexls) ...


Удобно и достаточно быстро получается .
...
Рейтинг: 0 / 0
неправильная запись даты
    #38213996
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1Ну я пришел к этому формату в результате проб и ошибок.... :-) Перебор ячеек экселя из фокса. когда заполнено за 50000 ячеек, очень долгий процесс(по крайне мере на моей машине), Impot из экселя(или APPEND FROM), тоже не не совсем удачный вариант(по моему мнению), т.к. нет единого формата(не понятно в какой версии делаи файл экселя), поэтому минимум команд открыл, записал как CSV, и далее в фоксе APPEND FROM TYPE CSV, мне показалось так удобней....:-)
Применительно к FoxPro можно использовать экспорт/импорт через массив. Единственное ограничение - это ограничение на количество ячеек массива в FoxPro. Для версий младше VFP9 не должно быть больше 65 тысяч ячеек и все данные не должны занимать более 2ГБ. Также следует учитывать тот факт, что через массивы нельзя передать содержимое мемо-полей.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
* Массив для экспорта должен иметь область видимости Private
* поскольку передается в процедуру parserArray
Dimension testArray(2,5)

testArray[1,1] = 1
testArray[1,2] = 'Один'
testArray[1,3] = 1.01
testArray[1,4] = Date()
testArray[1,5] = .f.

testArray[2,1] = 2
testArray[2,2] = 'Два'
testArray[2,3] = 2.02
testArray[2,4] = Date() + 10
testArray[2,5] = .t.

oExcel = CREATEOBJECT("Excel.Application")  
oBook = oExcel.workbooks.add  
oExcel.visible = .T.  

* Для исследования вопроса о том, как будет происходить экспорт/импорт
* в случае если в Excel есть объединенные ячейки
*!*	oBook.Sheets(1).Range("C1:D1").merge()
*!*	oBook.Sheets(1).Range("C2:D2").merge()

*!*	oBook.Sheets(1).Range("A1:A2").merge()

********************************
* Запись массива в Excel
* Только через процедуру и никак иначе (!)
********************************
oBook.Sheets(1).Range("A1:E2").value = parserArray("testArray")


********************************
* Чтение из Excel в Массив
* Область видимости массива с полученными данными может быть любой
* размерность массива будет автоматически изменена после чтения из Excel
********************************
Local laArray(1)	

laArray = oBook.Sheets(1).Range("A1:E2").value 
* Смотрим, что прочитали
For lnI = 1 to Alen(laArray, 1)
	?'строка '+ Transform(m.lnI) + ': '
	For lnJ = 1 to Alen(laArray,2)
		??' '
		??laArray[m.lnI,m.lnJ]
	EndFor
EndFor



********************************
* Обязательно должна быть оформлена отдельная процедура
* Для "распарсивания" массива при экспорте в Excel
PROCEDURE parserArray
LPARAMETERS taarrayname  
RETURN @&taarrayname
...
Рейтинг: 0 / 0
неправильная запись даты
    #38214020
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМДля версий младше VFP9 не должно быть больше 65 тысяч ячеек
Для VFP9 ничего не поменялось.
HELP Special Terms for Configuration Files mvcount Sets the maximum number of variables that Visual FoxPro can maintain. This value can range from 128 to 65,000.
Default: 16,384
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
неправильная запись даты
    #39991417
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
Применительно к FoxPro можно использовать экспорт/импорт через массив. Единственное ограничение - это ограничение на количество ячеек массива в FoxPro. Для версий младше VFP9 не должно быть больше 65 тысяч ячеек и все данные не должны занимать более 2ГБ. Также следует учитывать тот факт, что через массивы нельзя передать содержимое мемо-полей.
.
.
.

Пытаюсь таким способом экспортировать в Excel таблицу. Если нет полей типа Date все отлично, если есть -- ругается и не экспортирует. Пишет Unknown COM status code. Пробовал предварительно форматировать соответствующие колонки Excel'я как Дата, не помогло. Как быть?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / неправильная запись даты
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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