Aşağıdaki kod ile Mssql den verileri excel'e aktarıyorum fakat başlıkları alamıyorum bunu nasıl alabilirim ne eklemem gerekiyor yardım ederseniz sevinirim .
procedure ExportRecordsetToMSExcel(DestName: string; Data: _Recordset);
var
ovExcelApp: OleVariant;
ovExcelWorkbook: OleVariant;
ovWS: OleVariant;
ovRange: OleVariant;
i: Integer; // <-- döngü için gerekli olacak.
begin
ovExcelApp := CreateOleObject('Excel.Application'); //If Excel isnt installed will raise an exception
try
ovExcelWorkbook := ovExcelApp.WorkBooks.Add;
ovWS := ovExcelWorkbook.Worksheets.Item[1]; // go to first worksheet
ovWS.Activate;
ovWS.Select;
// EKLENEN KOD BAŞLANGIÇ
for i:=1 to Data.Fields.Count do
begin
// Bu döngü içinde doğru komutları kullanmalısın. Aşağıdaki ovWS doğru olmayabilir. Bu kısım bilmediğim kısım oluyor.
// Aşağıda bilgi yazacağın hücreye gitmelisin.
// 64+1 = 65, Chr(65) = A harfi (ASCII tablo üzerinden kontrol edersin), i rakamı ilerledikçe B, C, D diye harfler artacak
// Her zaman ilk satıra başlık bilgisi yazacaksın. Dolayısı ile A1, B1, C1 diye ilerleyeceksin.
ovWS.Cells[Chr(i+64)+'1', Chr(i+64)+'1'].Select;
// Aşağıda ise Alan adını ilgili hücre içine yazma işlemini yapmalısın.
ovWS.Cells.Value := Data.Fields[i-1].FieldName; // Fields[] indeksi sıfır ile başlar
end;
ovRange := ovWS.Range['A2', 'A2'];
// EKLENEN KOD BİTİŞ
ovRange.Resize[Data.RecordCount, Data.Fields.Count];
ovRange.CopyFromRecordset(Data, Data.RecordCount, Data.Fields.Count); //this copy the entire recordset to the selected range in excel
ovWS.SaveAs(DestName, 1, '', '', False, False);
finally
ovExcelWorkbook.Close(SaveChanges := False);
ovWS := Unassigned;
ovExcelWorkbook := Unassigned;
ovExcelApp := Unassigned;
end;
end;