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

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

Экспорт данных в Excel [D7]


ASMiD ©   (2005-12-28 14:03:00) 

Существует процедура вывода блока данных из D7 в Excel, которая прекрасно работает под Office XP. Под Office 2003  не работает абсолютно. Может кто подскажет в чем гимор?


ASMiD   (2005-12-28 15:32:00) [1]

ExAppl.Visible := true
В обязательном порядке, но, видимо, ошибка происходит до этого


старый маразматик(с)   (2005-12-28 15:16:00) [2]

ExAppl.Visible := true
в конце ф-ции написать?


k2   (2005-12-28 15:14:00) [3]

от создания блока данных ExData
(ушла домой)


ASMiD   (2005-12-28 14:55:00) [4]

Если зависит от создания - то код в студию.
function InitExcel(const AOwner:TComponent; const TemplName:string):wordbool;
var
 cerr:wordbool;
   ClassID: TCLSID;
label 1;
begin
// Is Excel exists?
 if s_Ok<>CLSIDFromProgID(PWideChar(WideString('Excel.Application')), ClassID) then begin
   MessageBox(0,Не установлен Microsoft Excel','Внимание!',mb_IconStop or MB_OK);
   result:=FALSE; exit;
 end;
// Ищем Excel
 cerr:=FALSE;
 try
   ExAppl := GetActiveOleObject('Excel.Application');
 except
// Запуск Excel
  cerr:=TRUE;
 end;
 if VarIsEmpty(ExAppl) then ExAppl:=CreateOleObject('Excel.Application');
 ExAppl.Visible := FALSE;
// Отключение реакции на события для ускорения экспорта
 ExAppl.Application.EnableEvents := false;
// Connect EXCEL
 if TemplName<>'' then ExWbk:=ExAppl.WorkBooks.Add(TemplName) else ExWbk:=ExAppl.WorkBooks.Add;
 ChangeWorkSheet(1);
 result:=TRUE;
end;

еще раз повторюсь - под Office ХР проходит, а под 2003 нет


k2   (2005-12-28 14:48:00) [5]

зависит от создания вроде бы


ASMiD   (2005-12-28 14:42:00) [6]

А от заполнения Variant что-то зависит или имеет смысл поставить OLEVariant?
Данные строковые - string[255];


Vlad   (2005-12-28 14:37:00) [7]


> ASMiD ©   (28.12.05 14:16) [4]


> просто Ёксель невидим после следующей строки

Следующая строка никак не связана с видимостью Ёкселя.
Для этого у него есть свойство Visible


k2   (2005-12-28 14:37:00) [8]

осталось выяснить што в блоке ExData, как он создается и заполняется :)


ASMiD   (2005-12-28 14:16:00) [9]

Виноват!!
Ошибка-то не возникает, просто Ёксель невидим после следующей строки
tRange.Value := ExData;
ExData: Variant;


k2   (2005-12-28 14:10:00) [10]

то есть в этой строчке возникает ошибка? или што?
никакого блока данных пока не видно


ASMiD   (2005-12-28 14:08:00) [11]

Нет вопросов!
tRange := ExWbk.WorkSheets[Curws].Range[Cell,Row];


k2   (2005-12-28 14:06:00) [12]

процедуру покажите, не стесняйтесь


Наверх

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