Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Delphi 6 и Office XP (по крайней мере Excel)! Не работает! [D6]


Страницы:   1 2

SB ©   (2003-10-06 08:04:00) 

Кто нить подскажите как работать с Excel XP из Delphi 6!!!!!
Прога работает под Excel 2000,97 а под Excel XP дает ошибку!
Может там библиотека какая нить нужна? Народ подскажите хоть в каком направлении искать?? Я уже на пределе!
Заранее спасибо!!


Hooch   (2003-10-07 08:38:00) [1]

да


SB   (2003-10-07 08:23:00) [2]

Выслал?


Hooch   (2003-10-07 08:05:00) [3]

ok


SB   (2003-10-07 08:02:00) [4]

Не у меня так и не работает
Ты код не менял? Можеш выслать листинг(полностью на мыло) твоей проги мож я че раньше накосячил!?
Заранее спасибо!


Hooch   (2003-10-07 07:22:00) [5]

так заработало или нет ??? да, я твой пример проверил, у меня на Office XP нормально сработало


SB   (2003-10-07 06:27:00) [6]

Hooch спасибо за интерфейсы!
Спасибо Bob за ссылку правда битую!


SB   (2003-10-07 06:23:00) [7]

Hooch спасибо за интерфейсы!
Спасибо Bob за ссылку!


Bob   (2003-10-06 17:53:00) [8]

>>ISheet.SaveAs(SFName,xlText,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);

Есть уменя подозрение, что в скобках надо указать больше параметров. По крайней мере с Word из Office XP затык был именно в этом. Описалово было найдено по этой ссылке:
http://www.delphiworld.narod.ru/all.html.Слазий туда, может быть найдешь для себя что-то интересное


Hooch   (2003-10-06 15:05:00) [9]

if not Assigned(ISheet) then
raise Exception.Create("А интерфейса нема !! ")


SB   (2003-10-06 14:55:00) [10]

Извини ламера но куда он должен возвращатся и как это проверить?


Hooch   (2003-10-06 14:25:00) [11]

>> ISheet := xlBk.Worksheets.Item["Лист1"] as cel2000._Worksheet;

после этой строки проверь интерфейс вернулся или нет


SB   (2003-10-06 14:22:00) [12]

на строке
ISheet.SaveAs ......
но самое интересное что в Excel 2000,97 все ништяк работает!


Hooch   (2003-10-06 14:06:00) [13]

дебагером ходил, на какой строке падает ?


SB   (2003-10-06 13:59:00) [14]

И компоненты никто не кидал!!
Все ручками писалось !


SB   (2003-10-06 13:51:00) [15]

ОК! Ошибка звучит так!
"Project SB.EXE raised exception class EOleException with message
"Ole Error 800A03EC".Process stoped. Use Step or Run to continue."
Выходит оно тогда , когда у меня начинает работать процедура

procedure TForm1.SaveXLTab(Sender:TObject);
begin
if Assigned(xlAp) and Assigned(xlBk) then
try
ISheet := xlBk.Worksheets.Item["Лист1"] as Excel2000._Worksheet;

ISheet.SaveAs(SFName,xlText,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
finally
ISheet:=nil;
end;
end;
Вроде вся информация ! Поможите кто чем может!!!


SelVl   (2003-10-06 13:44:00) [16]

Конечно можно, и мне кажеться так правильней и более универсально... но человек скорее всего просто кидал компоненты на форму...


Term   (2003-10-06 13:16:00) [17]

а можно без использования компонентов Servers?
просто создать COM-объект скажем примерно так:

var
xlap,xl:OLEVariant;
begin
XLap:= CreateOLEObject("Excel.Application");
xlap.workbooks.add;
XLap.visible := true;
xl:=xlap.Workbooks[1].Sheets[1];

по идее глючить не должно


SelVl   (2003-10-06 13:02:00) [18]

Смысл, то вообщем такой... наверняка использовались компоненты с палитры Servers?
Вообщем их надо удалить и добавить по новой, путем открытия какой-то dll из папки с офис XP, через пункт меню Components.
Как точно делать не помню, но смысл такой...

Nicolay prav
"В общем случае при работе с екселем приходится писать разный код под 97/2000/ХР :("


Woolen   (2003-10-06 11:59:00) [19]


> Ты хоть сам понял че сказал????
> Какая 17 строка?? Какой общий случай??
> Это уже тяжелый случай!!!

А ты-то сам понял, что сказал? Что он еще должен сказать человеку, который кидает в форум: "У меня ошибка! Пмогите!" Вот тебе и ответ: "Ошибка у тебя в строке 17!" Какой вопрос - такой ответ.
Причина:
Для непонятливых объясняю: если ты говоришь: "Помогите!", то надо хотя бы объяснить с чем. Иначе, извини, телепатов тут нет и такие посьбы помочь (хрен его знает с чем) осмеиваются.
Выход:
Детально объяснить, что у тебя происходит с кодом, какие ошибки и в какой момент появляются, привести фрагменты кода и сообщения ошибок, классы ошибок, указать, в какой строке из приведенных тобой происходит ошибка и дать, по возможности, прочую информацию, из которой можно сделать выводы. Тогда тебе, возможно, кто-нибудь поможет.


Term   (2003-10-06 11:52:00) [20]


> Ты хоть сам понял че сказал????
> Какая 17 строка?? Какой общий случай??
> Это уже тяжелый случай!!!

а ты понял что спросил, хотя бы написал какая ошибка, а то ждёш что тут еще и мысли твои ктото угадает


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо