Автор | Сообщение |
|
| |
Пост N: 4
Зарегистрирован: 05.08.08
|
|
Отправлено: 12.05.09 10:16. Заголовок: Нужен конвертер DBF в XLS
Добрый день, нужен конвертер формата DBF (консольный xHarbour) в формат XLS, с перекодировкой из 866 в 1251 Спасибо...
|
|
|
Ответов - 105
, стр:
1
2
3
4
5
6
All
[только новые]
|
|
|
| Администратор
|
Пост N: 2124
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.10.11 11:22. Заголовок: Дык.. как Очень даже..
Дык.. как Очень даже просто как Пользователю надо клацнуть на полочке панели задач на харбор-программу, и она получит фокус.
|
|
|
|
| |
Пост N: 43
Зарегистрирован: 09.09.11
|
|
Отправлено: 10.10.11 12:16. Заголовок: Хотелось бы без пере..
Хотелось бы без перехода на панель задач.... в программе вызывается Excel, пользоваиель делает то что хочет с данными, записывает файл и закрыает Приложение Excel и переходит обратно в прграмму...
|
|
|
|
| Администратор
|
Пост N: 2125
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.10.11 12:30. Заголовок: Боюсь, что это невоз..
Боюсь, что это невозможно. Во всяком случае, я не знаю, как это сделать. Программа как-то должна отследить, что Excel закрыт. Но Excel остается в памяти, пока висит программа. Есть у ms такая фича. Но зачем все это ? Когда excel закроется, windows и сама передаст фокус на предыдущее окно, т.е харбор-программу.
|
|
|
|
| постоянный участник
|
Пост N: 1899
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.10.11 12:34. Заголовок: Oskar_AAA пишет: за..
Oskar_AAA пишет: цитата: | записывает файл и закрыает Приложение Excel и переходит обратно в прграмму... |
| Нельзя наверно. Как Эксель узнает что нужно вернуть фокус обратно в задачу ? Хотя наверно можно в своей задаче опрашивать в цикле каждую минуту на наличие окна Экселя, и если его нет, то переключить(распахнуть) окно своей задачи.
|
|
|
|
| |
Пост N: 44
Зарегистрирован: 09.09.11
|
|
Отправлено: 10.10.11 13:01. Заголовок: Andrey пишет: наверн..
Andrey пишет: цитата: | наверно можно в своей задаче опрашивать в цикле каждую минуту на наличие окна Экселя, |
| но в памяти может быть загружен Excel совсем не относящийся к моей программе. Pasha, в том то и дело, что активируется Excel в фоновом режиме и висит в своем окне, а программа продолжает идти дальше по тексту кода, т.е. читает данные из файла XLS и пишет в БД. Хотя Пользователь не ввел необходимые данные....
|
|
|
|
| постоянный участник
|
Пост N: 1900
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.10.11 21:23. Заголовок: Oskar_AAA пишет: но..
Oskar_AAA пишет: цитата: | но в памяти может быть загружен Excel совсем не относящийся к моей программе. |
| Тогда бери и определяй окно Excel с заголовком ТВОЕГО файла.... Список процессов можешь получить вот с помощью такой программульки... http://files.mail.ru/OX6T20 А там дальше делай с ним что хочешь....
|
|
|
|
| постоянный участник
|
Пост N: 7263
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.11.22 23:43. Заголовок: Опять проблема с раз..
Опять проблема с разными версиями Экселя. Создаю Dbf в кодировке RU866. Открываю в экселе и записываю файл в формате XLS. На версии 2003 работает а на новой 2010 вылетает с такой ошибкой: Вот код: Скрытый текст
cFileDbf := "E:\РУССКИЕ-БУКВЫ\тест-эксель.dbf" cFileXls := ChangeFileExt( cFileDbf, '.xls' ) BEGIN SEQUENCE WITH {|e| Break( e )} oExcel := GetActiveObject( "Excel.Application" ) RECOVER BEGIN SEQUENCE WITH {|e| Break( e )} oExcel := CreateObject( "Excel.Application" ) RECOVER MG_Stop( "ОШИБКА! Excel не доступен. [" + win_oleErrorText() + "]" ) RETURN ( "" ) END END WaitWindow( 'Загрузка Excel ... ' + cFileNoPath(cFileDbf), .T. , 800, 14, NIL, YELLOW, RED) oExcel:Visible := .F. // НЕ Показывать EXCEL oExcel:DisplayAlerts := .F. // не приставать с запросами oExcel:WorkBooks:Add() // для версий EXCEL >= 2010 oExcel:Workbooks:Open( cFileDbf, 0 ) oBook := oExcel:ActiveSheet() IF FILE( cFileXls ) // Чтобы Excel не приставал в вопросом "Такой файл уже существует" nErr := DELETEFILE(cFileXls) IF nErr == 0 oBook:SaveAs( cFileXls, xlExcel9795 ) ELSE cMsg := REPLICATE( "-._.", 16 ) + ";;" cMsg += "Ошибка удаления файла: "+cFileXls+" !; Ошибка: "+HB_NtoS(nErr)+";;" cMsg += "Файл занят другим процессом в памяти !;;" cMsg += REPLICATE( "-._.", 16 ) + ";;" MG_Stop( cMsg , "Ошибка!" ) ENDIF ELSE oBook:SaveAs( cFileXls, xlExcel9795 ) ENDIF oExcel:Quit() WaitWindow()
| Что можно поправить, чтобы не вылетало ? Про то что раньше обсуждали - http://clipper.borda.ru/?1-4-0-00001069-000-10001-0-1637697000 - помню !
|
|
|
|
| |
Пост N: 7724
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.22 00:14. Заголовок: Найди четырёх ))))))..
Найди четырёх )))))))))
|
|
|
|
| |
Пост N: 157
Зарегистрирован: 09.09.11
|
|
Отправлено: 01.12.22 07:14. Заголовок: Добрый день, тоже ра..
Добрый день, тоже раньше были проблемы с версиями MS Excel при SaveAs(Name_Xls, версия MS) Попробуйте убрать параметр версии MS Excel замените на SaveAs(Name_Xls)
|
|
|
|
| |
Пост N: 1862
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.12.22 11:34. Заголовок: Andrey пишет: Что м..
Andrey пишет: цитата: | Что можно поправить, чтобы не вылетало ? |
| А чего сразу то не писать в формате Excel. Есть как минимум 4 способа работы с этим форматом и два из них вообще не требует Excel на компе.. 5 лет одни и те же грабли, может пора с другой стороны к снаряду подойти?
|
|
|
|
| |
Пост N: 158
Зарегистрирован: 09.09.11
|
|
Отправлено: 01.12.22 12:40. Заголовок: Имя файла MS Excel в..
Имя файла MS Excel всегда явно задаю с расширением XLSX и нет проблем ... 2003 сейчас найти трудно. В принципе тип расширения XLS/XLSX можно задать в настройках программы.
|
|
|
|
|
| |
Пост N: 7725
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.22 12:56. Заголовок: oEx:DefaultSaveForma..
oEx:DefaultSaveFormat
|
|
|
|
| Администратор
|
Пост N: 4096
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.12.22 12:57. Заголовок: Andrey пишет: oBo..
Andrey пишет: цитата: | oBook:SaveAs( cFileXls, xlExcel9795 ) |
| это же Excel версии 95 и 97 Зачем ??? Наверное Excel 2003 поддерживает такой древний формат, а 2010 уже нет
|
|
|
|
| постоянный участник
|
Пост N: 7264
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.12.22 17:37. Заголовок: Haz пишет: А чего с..
Haz пишет: цитата: | А чего сразу то не писать в формате Excel. Есть как минимум 4 способа работы с этим форматом и два из них вообще не требует Excel на компе.. 5 лет одни и те же грабли, может пора с другой стороны к снаряду подойти? |
| Да по быстрому решил dbf преобразовать в xls, без всяких объектов МиниГуи. Попытка не удалась ! Переделал пути и имя файла в латиницу - тоже такая же ошибка .... Dima пишет: Спасибо ! Попробую. Oskar_AAA пишет: цитата: | замените на SaveAs(Name_Xls) |
| Это тоже попробую. Спасибо ! Pasha пишет: цитата: | это же Excel версии 95 и 97 Зачем ??? |
| Ну не знал... 2003 работал, думал и 2010 будет...
|
|
|
|
| |
Пост N: 1863
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.12.22 18:44. Заголовок: Andrey пишет: думал..
Andrey пишет: Даже в 2016 есть поддержка форматов 95 и 97
|
|
|
|
| |
Пост N: 7726
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.22 19:19. Заголовок: Haz пишет: Даже в 2..
Haz пишет: цитата: | Даже в 2016 есть поддержка форматов 95 и 97 |
| 2021 тоже поддерживает :) линк
|
|
|
|
| Администратор
|
Пост N: 4097
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.12.22 22:46. Заголовок: Haz пишет: Даже в 2..
Haz пишет: цитата: | Даже в 2016 есть поддержка форматов 95 и 97 |
| У меня как раз 2016. Не поленился, прогнал этот пример. Не работает. Заменил xlExcel9795 на xlExcel8. Работает. Поддержка может она и есть. Теоретически, в доке. Но вот глючит она выходит
|
|
|
|
| |
Пост N: 1864
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.12.22 23:08. Заголовок: Pasha пишет: У меня..
Pasha пишет: цитата: | У меня как раз 2016. Не поленился, прогнал этот пример. Не работает. |
| Потому что при сохранении в 95/97 Excel раз 5 ругается матом про потерю функционала и совместимость. Но при сохранении через OLE эту ругань не видно, видимо это и приводит ошибке при игноре запросов Excel
|
|
|
|
| Администратор
|
Пост N: 4098
Зарегистрирован: 23.05.05
|
|
Отправлено: 02.12.22 08:25. Заголовок: Ну да, ругается: Дл..
Ну да, ругается: Для сохранения содержащегося в этом файле проекта VBA в формате Excel 5/0/95 требуется компонент, который в настоящий момент не установлен.... Можно конечно поискать этот компонент, но ЗАЧЕМ???
|
|
|
|
| постоянный участник
|
Пост N: 7268
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.12.22 18:31. Заголовок: oExcel:DefaultSaveFo..
oExcel:DefaultSaveFormat() - не работает. Сделал так: oBook:SaveAs( cFileXls, xlWorkbookNormal ) // работает в 2003 и в 2016 !!! DO EVENTS oExcel:Quit()
|
|
|
Ответов - 105
, стр:
1
2
3
4
5
6
All
[только новые]
|
|