Показать сообщение отдельно
  #1  
Старый 16.03.2012, 07:46
sctr sctr вне форума
Прохожий
 
Регистрация: 18.02.2012
Сообщения: 5
Репутация: 10
По умолчанию Экспорт в Excel выделенных строк dbgrid с добавлением новой строки?

Как вставить в Excel (например с 15 строки) число новых строк сколько я выделил записей в DBGrid, при этом те записи с 17 строки которые уже в шаблоне Excel сдвигались вниз?
Мой код:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
 XLApp,Sheet,Colum:Variant;
 index,i:Integer;
 xlDown:olevariant;
begin
 XLApp := CreateOleObject('Excel.Application' );
 XLApp.Visible := False;
 XLApp.WorkBooks.open('D:\Ïðîåêò\Ýêîíîì\7\reestr.xls' );
 XLApp.WorkBooks[1].WorkSheets[1].name := 'TCP';
 sheet:=XLApp.WorkBooks[1].WorkSheets['TCP'].Columns;
   XLApp.Selection.Insert(Shift := xlDown);
 index:=16;
 DBGrid1.DataSource.DataSet.First;
 with Form1.DBGrid1.DataSource.DataSet do
 begin
 Form1.ADOQuery1.DisableControls;
 for i:=0 to Form1.DBGrid1.SelectedRows.Count-1 do
  begin
  GotoBookmark(pointer(Form1.DBGrid1.SelectedRows.Items[i]));
  Sheet.Cells[index,1]:=Form1.ADOQuery1.Fields.Fields[0].AsString;
  Sheet.Cells[index,2]:=Form1.ADOQuery1.Fields.Fields[2].AsString+' '
  +Form1.ADOQuery1.Fields.Fields[3].AsString+' '+
  Form1.ADOQuery1.Fields.Fields[4].AsString;
  Sheet.Cells[index,3]:=Form1.ADOQuery1.Fields.Fields[1].AsString;
  Sheet.Cells[index,4]:=Form1.ADOQuery1.Fields.Fields[5].AsString;
  Inc(index);
  DBGrid1.DataSource.DataSet.Next;
  end;
  end;
  Form1.ADOQuery1.Open;
  XLApp.Visible:=True;
end;
Ответить с цитированием