Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];

Вниз

Как правильно коннектиться к 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.6 MB
Время: 0.039 c
1-1799
EvgeniyM
2002-12-20 13:05
2003.01.02
Вопрос по Outlook+OLE


1-1776
Aldokhin_Alex
2002-12-20 10:57
2003.01.02
Нужен алгоритм свертки


4-1924
Loda
2002-11-12 15:53
2003.01.02
Список окон у MDI формы


1-1815
Djon007
2002-12-19 23:03
2003.01.02
нужна помощь!!!!!!!!!


4-1934
ctapik-net
2002-11-14 18:39
2003.01.02
WM_QUERYENDSESSION - shutdown or reboot?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский