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

Вниз

Нет коннекта к Excel   Найти похожие ветки 

 
dataMaster   (2003-07-18 09:22) [0]

Всем привет! Может кто поделится соображениями? Имеется код, который был взят из FAQ:

XLApp - это ExcelApplication.
Свойство ConnectKind установлено в ckNewInstance, а AutoConnect и AutoQuit установлены в False.

GenericStringGrid - это StringGrid.



var
WorkBk : _WorkBook;
WorkSheet : _WorkSheet;
K, R, X, Y : Integer;
IIndex : OleVariant;
RangeMatrix : Variant;
NomFich : WideString;
begin
NomFich := ExtractFilePath(ParamStr(0))+"File.xls";
IIndex := 1;
XLApp.Connect;
// Открываем файл Excel
XLApp.WorkBooks.Open(NomFich,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,0);
WorkBk := XLApp.WorkBooks.Item[IIndex];
WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
// Чтобы знать размер листа (WorkSheet), т.е. количество строк и количество
// столбцов, мы активируем его последнюю непустую ячейку
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
// Получаем значение последней строки
X := XLApp.ActiveCell.Row;
// Получаем значение последней колонки
Y := XLApp.ActiveCell.Column+1;
// Определяем количество колонок в TStringGrid
GenericStringGrid.ColCount := Y;
// Сопоставляем матрицу WorkSheet с нашей Delphi матрицей
RangeMatrix := XLApp.Range["A1",XLApp.Cells.Item[X,Y]].Value;
// Выходим из Excel и отсоединяемся от сервера
XLApp.Quit;
XLApp.Disconnect;

// Определяем цикл для заполнения TStringGrid
for k:=1 to X do
for R := 1 to Y do
begin
GenericStringGrid.Cells[R, K] := RangeMatrix[K, R];
GenericStringGrid.RowCount := K + 1;
end;

// Unassign the Delphi Variant Matrix
RangeMatrix := Unassigned;
end;


А проблема вот в чем. В Windows 98 все работает нормально, а в Windows 2000 в строке XLApp.Connect; выдает ошибку "Interface not supported". Объясните, пожалуйста, почему?


 
MacroDenS   (2003-07-18 10:21) [1]

Просто в юзесах надо еще прописать Excel2000


 
dataMaster   (2003-07-18 10:25) [2]

Прописывал, не помогло


 
AME   (2003-07-18 10:32) [3]

Win 2000
Microsoft Excel 97 SR-2
Код работает!
Смотри для какого Excel компилировал!(97 или 2000)


 
dataMaster   (2003-07-18 10:39) [4]

Компилировал для Excel 2000


 
AME   (2003-07-18 10:42) [5]

У меня в uses Excel97
И на машине Excel 97!


 
AME   (2003-07-18 10:46) [6]

Простым прописыванием Excel2000 проблему не решить!
Тип Excel выбирается при инсталляции Delphi.


 
dataMaster   (2003-07-18 10:47) [7]

У меня в uses"ах и Excel97 и Excel2000 прописаны. При установке Delphi была выбрана опция Microsoft Office 97. Я думаю, может в этом причина? Хотя, почитал статьи, там рекомендуют ставить 97, если не знаешь, с каким Excel будешь работать. Меня волнует то, почему этот код на Win98 работает без проблем, а на Win2000 нет?


 
AME   (2003-07-18 11:02) [8]

>У меня в uses"ах и Excel97 и Excel2000 прописаны.
Я думаю будет Excel97 для компиляции использован.
А в Excel97 и Excel2000 COM интерфейс разные(я так думаю).
И думаю Win тут не при чем!
А на Win98 и Win2000 Excel одинаковый?


 
dataMaster   (2003-07-18 11:05) [9]

>А на Win98 и Win2000 Excel одинаковый?

Да. И набор его инструментов тоже.


 
AME   (2003-07-18 11:14) [10]

Тады не знаю :(
P.S. Сравни еще версии IE(кто его знает....)


 
dataMaster   (2003-07-18 11:24) [11]

Тогда у меня возникает сразу вопрос: а как IE может повлиять на Excel?


 
AME   (2003-07-18 11:37) [12]

Разная реализация компонентов в DLL,
которые оба используют.Эти связи только MS знает Ж:O

А как может влиять на Borland Database Engine?
А ведь влияет!!
На WinNT пришлось ставить IE 5.5, только тогда заработало.


 
dataMaster   (2003-07-18 11:50) [13]

Честно признаться, звучит более чем убедительно. Буду пробовать.



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

Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.015 c
1-100791
ramdy
2003-07-17 10:17
2003.07.31
stringgrid focused cell


1-100740
jack128
2003-07-15 21:56
2003.07.31
Как из Delphi выполнить код VBA в Excel?


3-100543
Sheng
2003-07-11 09:14
2003.07.31
Переиндексация БД


8-100830
Андрей
2003-04-07 08:30
2003.07.31
как можно получить код алгоритмов, визуализации для winamp


9-100528
Eugenex
2003-02-04 10:45
2003.07.31
Почти в тему!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский