Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2013, 13:26   #1
Crazy_Gamer
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 10
Печаль Редактирование уже запущенного документа Excel

Здравствуйте! Задача заключается в следующем, пользователь загружает Excel документ с web-ресурса, документ автоматически открывается. Программа должна получить доступ к этому открытому документу и произвести некоторые изменения. Имя файла - каждый раз рандомное, поэтому невозможно открывать файл с диска. В Интернете найти информацию не смог, в книге Конрнякова "Программирование документов и приложений MS Office в Delphi" есть описание только с GetActiveOleObject, но он работает только с теми объектами, которые были созданы в этой же программе.
Crazy_Gamer вне форума Ответить с цитированием
Старый 07.09.2013, 15:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
он работает только с теми объектами, которые были созданы в этой же программе.
Откуда такие выводы?
Цитата:
Программа должна получить доступ к этому открытому документу и произвести некоторые изменения.
Зачем делать это сразу после загрузки? Почему не загрузить а потом открыть в твоей программе?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.09.2013, 15:45   #3
Crazy_Gamer
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Откуда такие выводы?

Зачем делать это сразу после загрузки? Почему не загрузить а потом открыть в твоей программе?
Просто хочу исключить это действие, чтобы было попроще!

Цитата:
Откуда такие выводы?
Делал программу, и она не видела открытый документ, а видела только те, что она создает или открывает сама!
А вообще есть возможность так сделать, или обязательно документ нужно с диска открывать?

Последний раз редактировалось Stilet; 07.09.2013 в 16:02.
Crazy_Gamer вне форума Ответить с цитированием
Старый 07.09.2013, 16:05   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
она не видела открытый документ
Ну так неверно делал
GetActiveOleObject('Word.Applicatio n'); подключается к запущенному приложению. Это факт.
Показывай как делал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.09.2013, 16:20   #5
Crazy_Gamer
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 10
По умолчанию

Ну вот, для примера. Программа подключается к отрытой книге, скрывает ее, записывает данные в первую ячейку, и снова показывает окно.
Код:
var
  EX:variant;
begin
  EX:=GetActiveOleObject('Excel.Application');
  EX.Visible:=false;
  EX.Cells[1,1].Text:='Test';
  EX.Visible:=true;
end;
В общем на строку EX:=GetActiveOleObject('Excel.Appli cation'); - выдает ошибку "Операция недоступна". Что я делаю не так?
Crazy_Gamer вне форума Ответить с цитированием
Старый 07.09.2013, 17:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что я делаю не так?
А если через CreateOleObject то проходит?
Цитата:
EX:variant;
Кстати по-моему в Делфи принято для этого использовать тип olevariant.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.09.2013, 18:55   #7
Crazy_Gamer
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 10
По умолчанию

Цитата:
А если через CreateOleObject то проходит?
Проходит, но при этом создается новый объект.
Цитата:
в Делфи принято для этого использовать тип olevariant
У Корнякова используется variant. Хотя и с olevariant, в процедуре GetActiveOleObject возникает та же ошибка.
Crazy_Gamer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование документа Word, Linux avokan Помощь студентам 6 18.01.2013 00:44
CreateObject("Excel.Application"), процесс Excel продолжает висеть в диспетчере, когда это уже не нужно Vceznayka Microsoft Office Excel 5 29.12.2011 13:40
Нумерация листов ворд-документа, запущенного из экселя?? wolf05632 Microsoft Office Excel 3 23.04.2011 13:27
Редактирование MS Word документа Johnson Общие вопросы Delphi 3 21.11.2009 15:20
Редактирование документа Rend1 Общие вопросы Delphi 3 27.01.2008 10:24