![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Экспорт данных в 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]процедуру покажите, не стесняйтесь