On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
Dima
администратор




Пост N: 2372
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL


Ранее с Excel из Harbour ни когда не работал.
Поставили тут задачу.
У некоторых поставщиков есть определенные формы заказов.
Набраны они в Excel. Сейчас народ руками заполняет эти формы
и шлет по электронке поставщикам.
Задача сводится к тому что бы в этих формах находить
нужные коды товара и в нужной ячейке проставлять заказ.
Может ткнет кто носом с чего начать что бы не напороться на грабли.
Спасибо
Сами формы тут http://zalil.ru/33279066

Спасибо: 0 
Профиль
Ответов - 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


Спасибо: 0 
Профиль
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"

Спасибо: 0 
Профиль
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" )


Спасибо: 0 
Профиль
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" )

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5165
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.15 12:48. Заголовок: PSP Точно !..


PSP
Точно !

Спасибо: 0 
Профиль
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" - название раздела, а не параметра.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5166
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.15 12:58. Заголовок: PSP пишет: то верне..


PSP пишет:

 цитата:
то вернет значение параметра "По умолчанию".


Да и имена папок в формате 8.3

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 1115
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 29.07.15 12:59. Заголовок: Dima пишет: Да и им..


Dima пишет:

 цитата:
Да и имена папок в формате 8.3


Для excel - да, для firefox - нормально )))

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4420
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.07.15 17:51. Заголовок: А как заменить внизу..


А как заменить внизу: "Лист 1", "Лист 2" ....



Спасибо: 0 
Профиль
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)

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5168
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.15 21:41. Заголовок: Andrey пишет: А ка..


Andrey пишет:

 цитата:

А как заменить внизу: "Лист 1", "Лист 2" ....


Включить макрос как минимум на запись и переименовать руками
После смотрим что же там...........
 
Sheets("Лист1").Select
Sheets("Лист1").Name = "XXX"


затем это превращаем в код Harbour.

PS
Спать ночью надо Андрей

Спасибо: 0 
Профиль
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" )

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5170
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.15 22:26. Заголовок: PSP в этой ветке ви..


PSP
в этой ветке вижу у себя 11.0 и 9.0
стрянно , ставил только 2003 оффис


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5171
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.15 22:29. Заголовок: PSP пишет: В принци..


PSP пишет:

 цитата:
В принципе, можно проверить, существует ли файл


я понял корректного получения номера оффиса нет (включая 32 или 64 бит) , или есть ?


Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 1117
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 29.07.15 22:30. Заголовок: Dima пишет: PSP в э..


Dima пишет:

 цитата:
PSP
в этой ветке вижу у себя 11.0 и 9.0
стрянно , ставил только 2003 оффис


Нужно проверять наличие соответствующих путей к exe-шникам в обоих ветках. Если есть и там, и там, - использовать более свежее.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5172
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.15 22:31. Заголовок: PSP Понял. Бум дума..


PSP
Понял. Бум думать :)

PS
2-х офисов (или более) надеюсь не может быть установлено

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 1118
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 29.07.15 22:35. Заголовок: Dima, а какие переме..


Dima, а какие переменные есть в объекте, который возвращает CreateObject( "Excel.Application" ) ? Сам не могу глянуть сейчас. Нет ли там номера версии?

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5173
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.15 22:38. Заголовок: PSP Номерок то есть..


PSP
Номерок то есть НО после CreateObject( "Excel.Application" )
а нужно ведь сразу создать правильный CreateObject( "Excel.Application"+ExVer() )

типа так oExcel:Version

Спасибо: 0 
Профиль
PSP
постоянный участник


Пост N: 1119
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 29.07.15 22:44. Заголовок: Dima пишет: Номерок..


Dima пишет:

 цитата:
Номерок то есть НО после CreateObject( "Excel.Application" )
а нужно ведь сразу создать правильный CreateObject( "Excel.Application"+ExVer() )


Ну, ок... А если создать без номера версии, прочитать версию, закрыть, а потом создать с нужным номером? Понимаю, что не очень красиво, но, имхо, правильней, чем в реестре рыться.

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 5174
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.15 22:47. Заголовок: PSP Кстати да , вар..


PSP
Кстати да , вариант.


Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 672
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет