Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > РАбота с ADOQueary без DBRid


Автор: Ins813 7.6.2012, 09:58
Здравствуйте, скажите пожалуйста, есть MSSQL-БД, ADOQueary. Как выгрузиться с помощью Queary в Excel ?

ADOQuery1.First;
 for i:= 1 to ADOQuery1.RecordCount -1 do
begin
 for j:= 1 to DBGrid1.Columns.Count do
sheet.cells[index,1]:=adoquery1.FieldByName('name').AsString;
inc(index);
ADOQuery1.Next;
 end;  

Автор: Данкинг 7.6.2012, 10:18
Цитата(Ins813 @  7.6.2012,  10:58 Найти цитируемый пост)
 ADOQuery1.RecordCount -1

Почему -1: последняя строчка не нужна, что ли?
Цитата(Ins813 @  7.6.2012,  10:58 Найти цитируемый пост)
DBGrid1.Columns.Count 

Откуда тут Грид взялся?
Цитата(Ins813 @  7.6.2012,  10:58 Найти цитируемый пост)
sheet.cells[index,1]

Ну да, суть такая, только предварительно надо, разумеется, создать Ole-Объект, а в нём - новую книгу. 

Автор: Ins813 7.6.2012, 10:42
var
  Form1: TForm1;
   XLApp,Sheet,Colum: variant;
 index,i: integer;
....

procedure TForm1.Button2Click(Sender: TObject);
begin

 XLApp:= CreateOleObject('Excel.Application');
 XLApp.Visible:=true;
 XLApp.Workbooks.Add(-4167);
 XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
 Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
 Colum.Columns[1].ColumnWidth:=8;
....
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
Colum.Rows[3].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;

Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт'];
Sheet.Cells[1,5]:='Утверждаю:';
Sheet.Cells[2,4]:=' Ген.директор';

index:=4; 
ADOquery1.First;
 for i:=0 to ADOquery1.RecordCount do
  begin
   Sheet.Cells[index,1]:=IntToStr(i+1);
   Sheet.Cells[index,2]:= ADOquery1.FieldByName('date').AsString;
   Sheet.Cells[index,3]:= ADOquery1.FieldByName('name').AsString;
   Sheet.Cells[index,4]:= ADOquery1.FieldByName('kol_vo').AsString;
   Sheet.Cells[index,5]:= ADOquery1.FieldByName('street').AsString;
   Sheet.Cells[index,6]:= ADOquery1.FieldByName('kv').AsString;
   Inc(index);
   ADOquery1.Next;
  end;

Выдает ошибку ADOQuery cannot perform this operation on a close dataset

Автор: Ins813 7.6.2012, 11:22
Спасибо Вам, получилось, вот Только Осталась проблема с Предварительным просмотром, не знаеете как реализовать его ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)