Форум: "Основная";
Текущий архив: 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.81 MB
Время: 2.901 c