![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.09.2009
Сообщений: 12
|
![]()
Всем Привет! Кто подскажет как данные из одной ячейки Excel передать в Edit, если в Ecxel в этой ячейке данные переодически обновляются(они автоматически поступают из другой программы, но не сохраняются).Закрыть Excel я не могу, так как нарушится передача данных из той другой проги.
Я догадываюсь, что нужно как то сделать так, чтоб данные в Excel автоматически сохранялись без её закрытия, НО КАК это сделать? Автосохранение самого Excel срабатывает только через 1 минуту(нужно чаще) и то не всегда, мне нужно это сделать через Delphi. ПОМОГИТЕ!!! Пока прога написана так: Код:
Последний раз редактировалось Stilet; 30.10.2009 в 08:25. |
![]() |
![]() |
![]() |
#2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
А через таймер?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.09.2009
Сообщений: 12
|
![]()
Я именно через таймер это и делаю( я так просто для примера текст выложил).
Прикол весь в чём, например: в ячейке A1 изначально стоит число '25', я его вывожу в Edit, всё отлично получается. Далее в эту ячейку при открытом окне Excel, в ячейку A1 поступает из другой проги цифра '53', я проделываю ту же процедуру( вернее таймер её проделывает), но в Edit опять появляется '25'. Я понимаю что дело в том, что число '53' появилось но не сохранилось,так как мне его сохранить не пользуясь автосохранением EXcel(так как он никогда не работает(сам попробовал и на форумах почитал))? Как это сделать через Delphi не закрывая окана Exel? Если закрою окно нарушится связь с другой прогой( извиняюсь за повтор). |
![]() |
![]() |
![]() |
#4 |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]()
может я чего-то не понимаю.
Но чисто так по логике. 1. Вы создаете приложение Эксель и открываете книгу. В 2003 экселе в это время в эту книгу писать нельзя. То есть данные уже не поступят в момент открытия. 2. Если данные пишутся периодически, то есть некие границы или длительность периода. Значит книгу надо открывать в "паузу". И еще, неплохо бы делать синхронизацию. 3. А почему в Эксель??? Через текстовый файл или другим способо никак??? 4. Если закрывать Эксель нельзя, тогда надо первый раз открыть Эксель.А потом искать в памяти уже существующие копии и использовать их. а то у вас Экселей наплодиттся - винда от удивления грохнется раньше, чем вы задачу выполните. Вместо CreateOleObject('Excel.Application' ); Использовать GetActiveOleObject('Excel.Applicati on') 5. То есть в любом случае вам нужен таймер и интервалы и синхронизация ААА, я понял. ты же читаешь то, что хранится на диске, а не в памяти... Есть только один способ. Макрос на событие CHANGE в экселе. А он пусть пишет в текстовый файл содержимое. а ты уже читай не эксель, а файл - тогда сам эксель тебе будет сообщать значения. А ты по факту смены или изменения файла будешь читать его в Дельфи. Пожалуй только так. Событие в Эксель на изменение ячейки. Если она равна А1, то просто тупо пишешь в заданный файл ее значение. А иначе при твоих условиях никак Короче 1. В книге эксель, куда что-то пишется сидит в "Эта книга" макрос на стандартное событие "Выбор ячейки" не помню, что-то типа CELLCHANGE 2. В макросе выполняется запись известной ячейки в заданный файл, добавляя значения в конец или начало файла, как выйдет. 3. Дельфи читает по таймеру файл по факту изменения его размера. Все. задача решена.
и это пройдет...
Последний раз редактировалось Stilet; 30.10.2009 в 08:25. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Из EXEL в Word | olimpus | Microsoft Office Excel | 3 | 30.09.2009 18:55 |
EXEL | Artomes | Microsoft Office Excel | 0 | 02.11.2008 23:18 |
Exel | MAcK | Microsoft Office Excel | 1 | 30.04.2007 15:21 |