Автор | Сообщение |
Dima
|
| |
Пост N: 2372
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL
Ранее с Excel из Harbour ни когда не работал. Поставили тут задачу. У некоторых поставщиков есть определенные формы заказов. Набраны они в Excel. Сейчас народ руками заполняет эти формы и шлет по электронке поставщикам. Задача сводится к тому что бы в этих формах находить нужные коды товара и в нужной ячейке проставлять заказ. Может ткнет кто носом с чего начать что бы не напороться на грабли. Спасибо Сами формы тут http://zalil.ru/33279066
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Andrey
|
| постоянный участник
|
Пост N: 4418
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.07.15 19:51. Заголовок: http://clipper.borda..
http://clipper.borda.ru/?1-20-0-00000371-000-0-0-1195742832 Pasha - Пост N: 645 В конце концов остановился на функции Function MSExcel_PATH Return GetRegistry(, "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe", 'Path' ) которая использует стандартные средства харбора для работы с реестром Не работает ! Возвращает NIL
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1112
Зарегистрирован: 27.01.07
|
|
Отправлено: 28.07.15 20:33. Заголовок: Andrey пишет: Не ра..
Andrey пишет: цитата: | Не работает ! Возвращает NIL |
| А так? " HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe"
|
|
|
Dima
|
| |
Пост N: 5164
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.07.15 21:39. Заголовок: тоже не пашет с HBWI..
тоже не пашет с HBWIN win_regRead( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe" ) + это win_regRead( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Opera.exe" ) win_regRead( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe" )
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1113
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.07.15 12:37. Заголовок: Работает так: win_re..
Работает так: win_regRead( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe\Path" )
|
|
|
Dima
|
| |
Пост N: 5165
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 12:48. Заголовок: PSP Точно !..
PSP Точно !
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1114
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.07.15 12:57. Заголовок: Dima пишет: Точно !..
Dima пишет: И даже больше: если в конце не указывать Path, а оставить только слэш, цитата: | win_regRead( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe\ |
| то вернет значение параметра "По умолчанию". Просто, если нет слэша, то функция возвращает NIL, потому что "excel.exe" - название раздела, а не параметра.
|
|
|
Dima
|
| |
Пост N: 5166
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 12:58. Заголовок: PSP пишет: то верне..
PSP пишет: цитата: | то вернет значение параметра "По умолчанию". |
| Да и имена папок в формате 8.3
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1115
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.07.15 12:59. Заголовок: Dima пишет: Да и им..
Dima пишет: цитата: | Да и имена папок в формате 8.3 |
| Для excel - да, для firefox - нормально )))
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4420
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.07.15 17:51. Заголовок: А как заменить внизу..
А как заменить внизу: "Лист 1", "Лист 2" ....
|
|
|
Dima
|
| |
Пост N: 5167
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 21:37. Заголовок: PSP То есть коррект..
PSP То есть корректно получить версию можно так...или туплю слегка. Первое что пришло в голову left(right(win_regRead( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe\Path" ),3),2)
|
|
|
Dima
|
| |
Пост N: 5168
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 21:41. Заголовок: Andrey пишет: А ка..
Andrey пишет: цитата: | А как заменить внизу: "Лист 1", "Лист 2" .... |
| Включить макрос как минимум на запись и переименовать руками После смотрим что же там........... Sheets("Лист1").Select Sheets("Лист1").Name = "XXX" затем это превращаем в код Harbour. PS Спать ночью надо Андрей
|
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1116
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.07.15 22:20. Заголовок: Dima пишет: То есть..
Dima пишет: цитата: | То есть корректно получить версию можно так...или туплю слегка. |
| Вот еще есть кое-что: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office". В этом разделе должен быть подраздел с номером версии, в котором, в свою очередь, подразделы для всех установленных программ. Не знаю, удаляются ли эти ветки из реестра в случае деинсталляции офиса. В принципе, можно проверить, существует ли файл, к примеру excel.exe, по пути из соответствующего подраздела, т.е. File( win_regRead( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Excel\InstallRoot\Path" ) + "\Excel.exe" )
|
|
|
Dima
|
| |
Пост N: 5170
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 22:26. Заголовок: PSP в этой ветке ви..
PSP в этой ветке вижу у себя 11.0 и 9.0 стрянно , ставил только 2003 оффис
|
|
|
Dima
|
| |
Пост N: 5171
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 22:29. Заголовок: PSP пишет: В принци..
PSP пишет: цитата: | В принципе, можно проверить, существует ли файл |
| я понял корректного получения номера оффиса нет (включая 32 или 64 бит) , или есть ?
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1117
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.07.15 22:30. Заголовок: Dima пишет: PSP в э..
Dima пишет: цитата: | PSP в этой ветке вижу у себя 11.0 и 9.0 стрянно , ставил только 2003 оффис |
| Нужно проверять наличие соответствующих путей к exe-шникам в обоих ветках. Если есть и там, и там, - использовать более свежее.
|
|
|
Dima
|
| |
Пост N: 5172
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 22:31. Заголовок: PSP Понял. Бум дума..
PSP Понял. Бум думать :) PS 2-х офисов (или более) надеюсь не может быть установлено
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1118
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.07.15 22:35. Заголовок: Dima, а какие переме..
Dima, а какие переменные есть в объекте, который возвращает CreateObject( "Excel.Application" ) ? Сам не могу глянуть сейчас. Нет ли там номера версии?
|
|
|
Dima
|
| |
Пост N: 5173
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 22:38. Заголовок: PSP Номерок то есть..
PSP Номерок то есть НО после CreateObject( "Excel.Application" ) а нужно ведь сразу создать правильный CreateObject( "Excel.Application"+ExVer() ) типа так oExcel:Version
|
|
|
PSP
|
| постоянный участник
|
Пост N: 1119
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.07.15 22:44. Заголовок: Dima пишет: Номерок..
Dima пишет: цитата: | Номерок то есть НО после CreateObject( "Excel.Application" ) а нужно ведь сразу создать правильный CreateObject( "Excel.Application"+ExVer() ) |
| Ну, ок... А если создать без номера версии, прочитать версию, закрыть, а потом создать с нужным номером? Понимаю, что не очень красиво, но, имхо, правильней, чем в реестре рыться.
|
|
|
Dima
|
| |
Пост N: 5174
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.07.15 22:47. Заголовок: PSP Кстати да , вар..
PSP Кстати да , вариант.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|