|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Доброго! Delphi XE6, MS Office 2016 Запущена книга Excel, пытаюсь к ней обратиться Варианты состояния открытых книг Excel: а) Курсор (фокус) находится на всех открытых книгах на листе б) Курсор находится в строке формул, на одной или нескольких открытых книг Сокращаю код, но чтобы был понятен вопрос Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
Я так понял, что строка формул имеет теперь свой интерфейс IDispath и находится как активный именно он, а не сам Excel и ole не справляется с поиском. Пробовал задавать 'Excel.Application.16', результат аналогичен. Как победить, чтобы норм работало и в случае б) ? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:12 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Dmvrt Сокращаю код, но чтобы был понятен вопрос Сделай тестовый пример, который демонстрирует ошибку и может быть воспроизведен у других. Ну и оригинальный текст вместо "тут ошибка" был бы желателен. На всякий: проверь антивирус. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:23 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Извините, переменные Excel и ExcelApp, это одна переменная, просто копировал код из разных подпрограмм. Вот исправленный код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:26 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Тестовый пример: Код: pascal 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.
Ошибка в случае б): Project Project1.exe raised exception class EOleSysError with message 'Вызов был отклонен'. В случае а) - нет ошибок ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:39 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Соколинский Борис, антивирус тут причем? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:42 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Dmvrt антивирус тут причем? Ну либо в сам эксель какую-то защиту от посягательств встроили. Проверь то же через Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:47 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Чтобы было понятней ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:48 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Соколинский Борис, CreateOleObject('Excel.Application') нормально отрабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:50 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Dmvrt, а ты не можешь всегда так делать? Похоже на багу в экселе, да и не нужен этот GetActiveOleObject обычно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 00:55 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Соколинский Борис, Хотелось бы иногда избегать запуска новой копии Excel, когда есть открытые уже. Например, тот же файл не открывать, а проверить. Разное бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 01:08 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Dmvrt Хотелось бы иногда избегать запуска новой копии Excel... а) можно навредить пользователю (что ты собственно и делаешь, отключая алерты). б) можно навредить другому софту (ROT общая для всех программ). Лучше как-то архитектуру продумать чтобы этого избежать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 01:19 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Соколинский Борис, Я это понимаю, но как ты помнишь, текущий вопрос о другом. И я не знаю, как его решить, поэтому и спрашиваю, может кто с таким сталкивался и есть решение. А отключение алертов, это из старины и совместимости версий Excel, сейчас можно убрать, но руки не доходят, это еще с Delphi7 и с тех лет. Причем алерты включаются по finally (я же не весь код привел). Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 01:30 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Можно через IDispatch.GetType() получить IType и посмотреть какой интерфейс приходит ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 18:48 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
_Vasilisk_, Хорошая идея. Только что мне объяснить пользователям, что они должны выйти из строки формул (потому как не тот интерфейс определился), а потом все будет работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 00:00 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Можно, конечно, если не то определилось сделать CreateOleObject, спасибо, попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 00:07 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Это все танцы с бубном, потом еще какая-то фигня вылезет. Идея в принципе порочная, если пользователь работает с Экселем - дергать его через OLE нельзя. Максимум что можно - запросить какую-то инфу, в частности открытые файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 00:20 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Соколинский Борис, И какой самый рациональный способ сброса данных в excel в связке Delphi, ms sql и Excel? Причем с форматированием. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 00:31 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Dmvrt, элементарно, Ватсон. 1. подготовить шаблон, содержащий форматирование и запрос к MsSQL 2. из программы закачать параметры и выполнить запрос. 3. при необходимости дорихтовать форматирование макросами. Быстро, надежно, и с возможностью кастомизации под разных пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 00:44 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Соколинский Борис, В шаблон как из делфей закачать параметры в Ecxel, не открывая его? Можно пример кода Буду очень благодарен ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 01:00 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Dmvrt, открыть, через CreateOLEObject. Запущенный Excel не трогать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 01:05 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Точнее так: можно трогать только тот, который создан из программы и не отдан на усмотрение пользователю. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 01:08 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Ничего нового, а вопрос остался. Если бы мне нужно было бы только CreateOLEObject, то я бы и не спрашивал тут. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 01:15 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
напишу тогда проще функцию открытия Excel Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 01:35 |
|
Работа с Excel через OLE
|
|||
---|---|---|---|
#18+
Dmvrt Только что мне объяснить пользователям, что они должны выйти из строки формул (потому как не тот интерфейс определился), Хотя с большой вероятностью оба интерфейса будут идентичны. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2021, 01:43 |
|
|
start [/forum/topic.php?fid=58&msg=40115377&tid=2036830]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 131ms |
0 / 0 |