Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.03.2013, 09:09
Sultik.rinat Sultik.rinat вне форума
Прохожий
 
Регистрация: 01.03.2013
Сообщения: 4
Репутация: 10
По умолчанию Проблема при открытии книги Excell

Раньше код работал исправно:
Код:
 Excel := CreateOleObject('Excel.Application');
 Excel.WorkBooks.Open('S:\Абоненты.xlsx',ReadOnly:=True);
Потом вдруг стала появляться ошибка

Как её исправить?

Последний раз редактировалось Sultik.rinat, 01.03.2013 в 09:11.
Ответить с цитированием
  #2  
Старый 01.03.2013, 11:25
Budjaka Budjaka вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 15
Репутация: 10
По умолчанию

Телепатирую - удалите 2007 офис поставленный только что, и верните 2003, т.к. кривое имя листа / поля / записи внутри книги, совпадает с зарезервированным именем в новом 2007 или выше. Делфи тут ни при чем.
Вариантов исправить - куча.
Самый просто - сохрани электронную таблицу, не как книгу 07, а как 2003 (XLS).
Если решение не нравится, можем более извращенное придумать :-)

Последний раз редактировалось Budjaka, 01.03.2013 в 11:27.
Ответить с цитированием
  #3  
Старый 01.03.2013, 12:15
Sultik.rinat Sultik.rinat вне форума
Прохожий
 
Регистрация: 01.03.2013
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Budjaka
Телепатирую - удалите 2007 офис поставленный только что, и верните 2003, т.к. кривое имя листа / поля / записи внутри книги, совпадает с зарезервированным именем в новом 2007 или выше. Делфи тут ни при чем.
Вариантов исправить - куча.
Самый просто - сохрани электронную таблицу, не как книгу 07, а как 2003 (XLS).
Если решение не нравится, можем более извращенное придумать :-)
Варианты переустановки вообще не подходят, потому что программа в будущем будет на нескольких компах, а на всех компах нет возможности переустановить офис. и XLS тоже не подходит.
Так а почему раньше-то работал нормально, офис тот же стоял всегда.

Это куда-то залезать надо, чтобы имя это поменять? А куда?

И ещё вопрос: а почему я открываю только для чтения, а при закрытии у меня всегда вылетает окно с вопросом "Сохранить изменения?"

Последний раз редактировалось Sultik.rinat, 01.03.2013 в 12:19.
Ответить с цитированием
  #4  
Старый 01.03.2013, 16:48
Budjaka Budjaka вне форума
Прохожий
 
Регистрация: 13.02.2013
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Sultik.rinat
Это куда-то залезать надо, чтобы имя это поменять? А куда?

И ещё вопрос: а почему я открываю только для чтения, а при закрытии у меня всегда вылетает окно с вопросом "Сохранить изменения?"
1. У тебя поле / имя листа / или любой другой идентификатор в книге - совпали с именем функции (итп) самого офиса. Отсюда невозможность открыть. Нужно выяснить что именно мешает работать. И в выдающейся ошибке думаю есть подсказка.
2. У тебя код :
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.Open('S:\Абоненты.xlsx',ReadOnly:= True);
Excel.Close (или что то в этом духе);
Выполнив его единожды - и поймав ошибку на 2й строке - ты открыл книгу экселя, и твой код прервался. Т.е. excel.close - не судьба была. И неважно закрыл ли ты Делфи или нет - эта книга висит у тебя в памяти, и поэтому
Цитата:
я открываю только для чтения, а при закрытии у меня всегда вылетает окно с вопросом "Сохранить изменения?
Нажми Ctrl + Alt + Del - и взгляни сам : у тебя в процессах висит твой запущенный Exсel. Или два. Или десять :-) (смотря сколько раз пытался).
Убей их всех
1.1. P.s. а проблема твоя довольно распространена, в связи с глюками Екселя. Сам искал одно время. Вот вам копипаста, чтобы по ссылкам не ходить :
Цитата:
1. Сохранить книгу в старый формат, затем обратно в новый. Штатным диспетчером имен (Формулы - Диспетчер имен - Фильтр - Имена с ошибками) не лечится.
2. Используем надстройку Namemanager (еще под 97й офис) oaltd.co.uk/mvp

Последний раз редактировалось Budjaka, 01.03.2013 в 16:58.
Ответить с цитированием
  #5  
Старый 02.03.2013, 11:08
Sultik.rinat Sultik.rinat вне форума
Прохожий
 
Регистрация: 01.03.2013
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Budjaka
1. У тебя поле / имя листа / или любой другой идентификатор в книге - совпали с именем функции (итп) самого офиса. Отсюда невозможность открыть. Нужно выяснить что именно мешает работать. И в выдающейся ошибке думаю есть подсказка.
В Диспетчере имён ни одного имени нет
Цитата:
Сообщение от Budjaka
2. У тебя код :
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.Open('S:\Абоненты.xlsx',ReadOnly:= True);
Excel.Close (или что то в этом духе);
Выполнив его единожды - и поймав ошибку на 2й строке - ты открыл книгу экселя, и твой код прервался. Т.е. excel.close - не судьба была. И неважно закрыл ли ты Делфи или нет - эта книга висит у тебя в памяти, и поэтому

Нажми Ctrl + Alt + Del - и взгляни сам : у тебя в процессах висит твой запущенный Exсel. Или два. Или десять :-) (смотря сколько раз пытался).
Убей их всех
До этого окно сохранения всё равно появлялось, хотя ошибки не было при открытии. И закрывала программа ексель нормально. Кароче файл открывался только для чтения, ошибки сначала небыло, и при закрытии файла появлялось окно сохранения изменений (хотя никаких изменений не было). После закрытия этого окна эксель закрывался. Потом появилась эта ошибка про конфликт имён. При том что офис я не переустанавливал, то есть до этого программа исправно работала на этом офисе, а потом на этом же офисе появилась эта ошибка. А если точнее ошибка появилась после добавления в программу компонента tcpclient (может в этом дело? хотя при чём тут это?)

Цитата:
Сообщение от Budjaka
1.1. P.s. а проблема твоя довольно распространена, в связи с глюками Екселя. Сам искал одно время. Вот вам копипаста, чтобы по ссылкам не ходить :
Тоже искал уже. нэймменеджер не помог. А в диспетчере имён пусто.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter