Re[4]: Экспорт данных в среде Дельфи в Excell
От: Original  
Дата: 09.08.05 11:13
Оценка:
Здравствуйте, Vodyamba, Вы писали:

V>Здравствуйте, Original, Вы писали:


O>>Здравствуйте, Vodyamba, Вы писали:


V>>>Здравствуйте, Original, Вы писали:


O>>>>Нужна помощь..не знаю как сделать это ..база данных SQL server ... с помощью дельфи надо экспортировать данные в excell ..если ктото поможет буду очень благодарен .. заранее спасибо ...


V>>>Можно использовать стандартный компонент TexcelApplication, для экспорта вполне хватит.


V>>>Он не очень удобный, но зато работает. И не надо ничего ниоткуда скачивать и устанавливать.


O>>Спасибо за подсказку, я знаю что этим компонентом можно пользоваться , но мне нужен пример, если есть то пожалуйста покажите ..


V>Готовая функция, ей надо передать только параметр query или подобный и создастся окно экселя в котором всё это отображается...

V>Писал сам, уже не помню для чего, но работала... а у OLE объектов ничего не меняется...

V>
V>Procedure v_export_excel(const q1:TDataset);
V>Var
V>TabGrid,xl,wb,ws:variant;
V>i,j,c,r:integer;
V>begin

V> if q1.Active=true then
V> Begin
V> q1.DisableControls;
V> try
V>    Xl := CreateOleObject('Excel.Application');
V>    Xl.WorkBooks.Add;
V>    Wb := Xl.Workbooks[1];
V>    Ws := Wb.Worksheets[1];

V>    q1.First;

V>  //Заполнение матрицы (Занесение наименования полей в матрицу)
V>      R := q1.RecordCount;
V>      C := q1.FieldCount;

V>      TabGrid := VarArrayCreate([0, R, 0, (C - 1)], VarOleStr);

V>        for i:=0 to q1.FieldCount-1 do
V>        TabGrid[0, i] := q1.Fields[i].FieldName;

V>   //Заполнение матрицы
V>        for i:=1 to r do
V>         Begin
V>          for j:=0 to c-1 do
V>           Begin
V>           if q1.Fields[j].AsVariant<>null then
V>               try
V>                TabGrid[I, J] := q1.Fields[j].value;
V>               except Application.MessageBox(Pchar('В процессе заполнения матрицы возникла ошибка: '+'Строка №-'+inttostr(i)+' Столбец №-'+inttostr(j)),'Обратитесь к разработчику');  end;
V>           end;
V>         q1.Next;
V>         end;

V>    Ws.Range['A1', Ws.Cells.Item[R+1, C]].Value2 :=TabGrid;

V>    xl.visible:=true;
V>    ws:=unassigned;
V>    wb:=unassigned;
V>    xl:=unassigned; 

V> except
V>    on E : exception do
V>    Begin
V>    Application.MessageBox(pchar('Невозможно экспортировать данные'+#10+#13+'Наименование ошибки - '+e.message),'Обратитесь к разработчику',MB_OK    + MB_ICONASTERISK);
V>    q1.EnableControls;
V>    xl.visible:=false;      ws:=unassigned;
V>    wb:=unassigned;         xl:=unassigned;
V>    end;
V> end;
V> q1.EnableControls;
V> end;
V>end;

V>


спасибо огромное ... всё заработало ....
то что нужно ...
только нужны коекие изменения насчёт фонтов сделать .... и всё будет в норме думаю
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.