Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.24;
Скачать: CL | DM;

Вниз

открыт ли уже *.xls файл   Найти похожие ветки 

 
knastya   (2006-11-09 02:09) [0]

Подскажите, пожалуйста.
Стоит задача записать данные из Дельфи в экселевскую таблицу. Если вдруг таблица уже открыта в самом экселе на момент записи, данные не будут сохранены в ней. Соответсвенно, перед тем, как записывать в таблицу, хотелось бы узнать, не открыта ли она уже.
Делаю:

ExcelApp := CreateOleObject("Excel.Application");

b:=false;
i:=1;
n:=ExcelApp.Application.WorkBooks.count;
while (not b) and (i<=n) do
 begin
   b:=(ExcelApp.Application.WorkBooks[i].Fullname= fileName);
   inc(i);
 end;

Так вот, n=0, если эксель запущен и в нем открыты таблицы.
А как мне тогда увидеть, что файл открыт?


 
ЮЮ ©   (2006-11-09 07:30) [1]

вместо inc(i); следует if not b then inc(i);
Не стоит терять с таким трудом найденный индекс

if b then
 oткрыт ExcelApp.Application.WorkBooks[i]

на n можно и не смотреть


 
MetalFan ©   (2006-11-09 08:19) [2]

сначала
GetActiveOleObject("Excel.Application")
если что-то вернуло - то это запущенный экземпляр excel... возможно с открытыми файлами


 
umbra ©   (2006-11-09 13:08) [3]

лучше записать данные в новую книгу, закрыть ее, попытаться удалить файл со старыми данными. Если он открыт, то удалить его не удастся. Если закрыт, то он удалится и можно переименовывать новый файл. Что-то наподобие

if FileExists(oldfile) then
 repeat until DeleteFile(oldfile);
RenameFile(oldfile, newfile);


Пользоваться приведенным кодом не стоит, это только иллюстрация.


 
umbra ©   (2006-11-09 13:17) [4]

прошу прощения, конечно же

RenameFile(newfile, oldfile);


 
knastya   (2006-11-09 22:22) [5]

to [2]
Спасибо, заработало.
Правда не понимаю, как теперь отсоединится от excel, чтобы его при этом не закрыть (ну ведь с ним кто-то предположительно работает).

ExcelApp.Application.Quit; <----вот здесь закрывается
ExcelApp:=unassigned;



Страницы: 1 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
2-1165200839
M1sT
2006-12-04 05:53
2006.12.24
Перемещение записи


2-1165268373
Riply
2006-12-05 00:39
2006.12.24
Получение информации о сервисе.


15-1165304626
cyborg
2006-12-05 10:43
2006.12.24
Ваше мнение об интернетизации школ?


15-1165047870
Pazitron_Brain
2006-12-02 11:24
2006.12.24
Почему не продают процессоры Cell?


15-1165265831
Kolan
2006-12-04 23:57
2006.12.24
Пишем программы по русски?