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

Вниз

Как правильно коннектиться к ExcelApplication??   Найти похожие ветки 

 
Julya ©   (2002-12-18 11:53) [0]

Добрый день! Наверное я неправильно что-то делаю, но при попытке приконнектиться к ExcelApplication дельфя пишет "Interface does not supported!".....помогите разобраться, пожалуйста!!!


 
stone ©   (2002-12-18 12:02) [1]

Код в студию


 
zavdim   (2002-12-18 12:02) [2]

а в чем разбираться?
тут с телепатами напряженка.


 
bak ©   (2002-12-18 12:28) [3]

если работаешь с оле, то наверное контейнер у тебя закрыт.


 
id_privin ©   (2002-12-18 14:29) [4]

Возможно не поставлен офис. Или офис старый


 
Julya ©   (2002-12-18 14:31) [5]

if SaveDialog.Execute then begin
ExportFileName := PChar(SaveDialog.FileName);

ExcelApplication := TExcelApplication.Create(Self);
ExcelApplication.ConnectKind := ckRunningOrNew;
ExcelApplication.AutoQuit := True;
ExcelApplication.AutoConnect := False;

ExcelWorkbook := TExcelWorkbook.Create(Self);
ExcelWorkbook.ConnectKind := ckAttachToInterface;

ExcelWorksheet := TExcelWorksheet.Create(Self);
ExcelWorksheet.ConnectKind := ckAttachToInterface;

CopyFile(TemplateFileName, ExportFileName, True);

ExcelApplication.Workbooks.Open(ExportFileName, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);

ExcelWorkbook.ConnectTo(ExcelApplication.ActiveWorkbook);
ExcelWorkbook.Activate;

ExcelWorksheet.ConnectTo(ExcelWorkbook.ActiveSheet as _Worksheet);
Sheet := ExcelWorkbook.ActiveSheet as _Worksheet;
// далее идет вставка данных из грида в ячейки екселя

после OPEN вылетает ошибка "Interface does not supported" но не при компиляции а при запуске проги( когда пытаюсь протестировать процесс экспорта)...причем только на моем компе...все компилю как есть, и на других компах у юзверей экспорт работает...а на моем - нет. использовала и EXCEL2000.pas и EXCEL97.pas всегда одно и то же... (((
пожалуйста помогите разобраться, я не профи, 1-й раз экспорчу данные в ексель! Очень жду ответа!


 
Julya ©   (2002-12-18 14:34) [6]

Офис 2000!(на моем и у юзверей тоже). Но у них не вылетает ошибка, а у меня всегда! Конфликт с дельфой какой то. Наверняка что-нидь не так описала(((


 
Julya ©   (2002-12-18 15:32) [7]

пожалуйста, посмотрите код!!!


 
BF7ru ©   (2002-12-18 15:48) [8]

Добавте эту строчку после CopyFile:
ExcelApplication.Connect;


 
zavdim   (2002-12-19 06:02) [9]

проставил Ваш код у себя - все работает. Офис XP.
Я обычно не так работаю с Exel"ем, да и Word"ом.
Может и Вам попробовать по другому?
Еще одно - посмотрите списки процессов - может файл уже пользуется - и из за этого проблемы. При тестировании у меня часто такое бывало.


 
Julya ©   (2002-12-19 09:03) [10]

ZAVDIM а как Вы работаете с EXCEL"ем?


 
OlDemon ©   (2002-12-19 09:14) [11]

2 Julya> ИМХО поздним связыванием (т.е. без использования серверов) :)))
Я так же делаю. Помоему гораздо лучше действует, да и другие программеры со мной согласны. Если надо могу коды написать.


 
zavdim ©   (2002-12-19 09:20) [12]

В общих чертах - примерно так:
var
Excel, Sheet : Variant;
begin
Excel:=CreateOleObject("Excel.Application");
try
try
Excel.WorkBooks.Open(ExcelName);
except
Excel := null;
raise Exception.Create("Проблемы в работе Excel!")
end;
Sheet := Excel.ActiveWorkbook.WorkSheets[Page];
s :=Sheet.Cells[1,1].Value;
.........
finally
Excel.Quit
end
end;
Проблема в том, что вы не всегда знаете, что писать после точки - надо ковыряться в файле справки VBA для Excel"я - и методом проб и ошибок учиться. Описаний больших по этому вопросу не видел, да и если честно не искал - что надо разрывал сам, хотя возни много. Я думаю, что кто-нибудь может дать ссылку используя которую можно сэкономить время.


 
KSergey ©   (2002-12-19 09:23) [13]

Коды подробнейшим образом расписаны на Королевстве. И, к стати, а может вам посмотреть XLReport от афалина софт? Он делает как раз то, что надо. Правда, не бесплатно, зато здорово. Хотя, конечно, не всегда такая здоровкность нужна...
http://www.afalinasoft.com/rus/index.html
А вот ссылка на статьи (только не на Королевтсве ссылку дам, а на авторском сайте)
http://www.afalinasoft.com/rus/tips/index.html


 
Fantasist ©   (2002-12-19 19:32) [14]


> Я так же делаю. Помоему гораздо лучше действует, да и другие
> программеры со мной согласны. Если надо могу коды написать.
>


Ничего не согласны. Поздее связывание тормозит сильно и никакой проверки типов на этапе компиляции. Способ используемый Julia потенциально лучше. Единственно, что для просто для экспорта/импорта, на мой, взгляд лучше использовать алтернативные варианты такие как DAO, репортинговые системы, F1Book.


 
zavdim ©   (2002-12-20 07:53) [15]

Работает не быстро - согласен.
Но для использемых целей мне хватает.
Я в основном использую это в утилитах, при работе над проектом - для получения из приготовленных таблиц нужных мне сведений для создания спец.формат.файлов прооета.
Вся работа все равно занимает - 5-20 сек.


 
OlDemon ©   (2002-12-20 08:07) [16]

2 Fantasist> я не говорил что *все* согласны. Согласны программеры которые со мной работают (а это действительно крутые ребята без прикрас). Насчет тормозит это не правда - у меня ничего не тормозит. Хотя возможно это зависит от выполняемых действий. При этом для позднего связвания не обязательно указывать все параметры что для меня - лучше. Кроме того тот кто знаком с VB спокойно пишет используя его без всяких серверов. ЗЫ. давно читаю форум и уже не раз видел, что у людей проблемы с ранним связыванием. А вот с поздним - не видел.



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

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

Наверх




Память: 0.51 MB
Время: 0.01 c
1-1767
Paul Angel
2002-12-19 18:43
2003.01.02
Помогите чайнику: Как мне открыть таблицу Excel в моём приложении


14-1859
MaximatorVeter
2002-12-12 13:34
2003.01.02
Горяченькими!


3-1744
race1
2002-12-11 13:42
2003.01.02
fibplus


3-1749
Anatoliy
2002-12-11 13:53
2003.01.02
Как обновить данные из связанной таблицы в Access?


14-1881
PaRL
2002-12-12 22:29
2003.01.02
Книга