Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Excel'e aktarım ile ilgili
#1
Günaydın arkadaşlar ben dbgrid ten verilerimi execel aktarıyorum fakat bunların birde kolon genişliğini ve renklenrini ayarlamak istiyorum yardımcı olurmusunuz?



unit uAracRapor;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ComCtrls, uModule,
  frxClass, frxDBSet, Vcl.ExtCtrls, Comobj;

type
  TformAracRapor = class(TForm)
    GroupBox1: TGroupBox;
    BitBtn1: TBitBtn;
    dtBasTarih: TDateTimePicker;
    dtBitisTarih: TDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    cbAracSurucu: TComboBox;
    cbGuzergah: TComboBox;
    Label3: TLabel;
    Label4: TLabel;
    cbAracPlaka: TComboBox;
    Label5: TLabel;
    frxDBDataset1: TfrxDBDataset;
    frxReport1: TfrxReport;
    Image1: TImage;
    cbGSorumlusu: TComboBox;
    Label6: TLabel;
    bAktar: TBitBtn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure bAktarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  formAracRapor: TformAracRapor;

implementation

{$R *.dfm}


procedure TformAracRapor.bAktarClick(Sender: TObject);
var
excel, workbook, sheet:Variant;
i:Integer;
ColumnRange: Variant;
begin

with module.adoAracRapor do
   begin

    Close;
      SQL.Clear;
        SQL.Add ('select * from bt_arac_takip_formu where tarih between '+#39+DateToStr(dtBasTarih.Date)+#39);
          SQL.Add (' and '+#39+DateToStr(dtBitisTarih.Date)+#39);
            SQL.Add (' and arac_surucusu like'+#39+cbAracSurucu.text+#37+#39);
             SQL.Add (' and guzergah like'+#39+cbGuzergah.Text+#37+#39);
              SQL.Add (' and arac_plaka like'+#39+cbAracPlaka.Text+#37+#39);
                SQL.Add (' and guvenlik_sorumlusu like'+#39+cbGSorumlusu.Text+#37+#39);
                  SQL.Add(' order by tarih');
                  Open;

	try

	if module.AdoAracRapor.RecordCount = 0 then
	begin

	 application.messageBox('Aktarılacak kayıt bulunamadı !', 'DİKKAT', MB_OK + MB_ICONEXCLAMATION);
	 exit;

	end;

   excel := CreateOleObject('excel.application');
   workbook := excel.workbooks.add;

     sheet := workbook.worksheets[1];

       sheet.cells[1, 1] := 'Araç Sürücüsü';
       sheet.cells[1, 2] := 'Güzergah';
       sheet.cells[1, 3] := 'Çıkış Tarihi';
       sheet.cells[1, 4] := 'Çıkış Saati';
       sheet.cells[1, 5] := 'Dönüş Tarihi';
       sheet.cells[1, 6] := 'Dönüş Saati';
       sheet.cells[1, 7] := 'Görevi Yazan';
       sheet.cells[1, 8] := 'Araç Plaka';
       sheet.cells[1, 9] := 'Açıklama';
       sheet.cells[1, 10] := 'Görev Notu';

   i := 1;
   module.adoAracRapor.first;


   while not module.adoAracRapor.eof do
   begin

     i := i + 1;

       sheet.cells[i, 1] := module.adoAracRapor.FieldByName('arac_surucusu').asstring;
       sheet.cells[i, 2] := module.adoAracRapor.FieldByName('guzergah').asstring;
       sheet.cells[i, 3] := module.adoAracRapor.FieldByName('tarih').asstring;;
       sheet.cells[i, 4] := module.adoAracRapor.FieldByName('saat').asstring;
       sheet.cells[i, 5] := module.adoAracRapor.FieldByName('donus_tarihi').asstring;
       sheet.cells[i, 6] := module.adoAracRapor.FieldByName('donus_saati').asstring;
       sheet.cells[i, 7] := module.adoAracRapor.FieldByName('guvenlik_sorumlusu').asstring;
       sheet.cells[i, 8] := module.adoAracRapor.FieldByName('arac_plaka').asstring;
       sheet.cells[i, 9] := module.adoAracRapor.FieldByName('gorevli_aciklama').asstring;
       sheet.cells[i, 10] := module.adoAracRapor.FieldByName('gorev_notu').asstring;

       module.adoAracRapor.Next;

     end;

      excel.visible := true;

     except on e:Exception do
     begin

       showmessage(e.Message);
       close;

     end;

   end;

 end;
end;

procedure TformAracRapor.BitBtn1Click(Sender: TObject);
var
tar1 : String;
begin
tar1:=datetostr(dtBasTarih.Date);

   with module.adoAracRapor do
   begin

    Close;
      SQL.Clear;
        SQL.Add ('select * from bt_arac_takip_formu where tarih between '+#39+DateToStr(dtBasTarih.Date)+#39);
          SQL.Add (' and '+#39+DateToStr(dtBitisTarih.Date)+#39);
            SQL.Add (' and arac_surucusu like'+#39+cbAracSurucu.text+#37+#39);
             SQL.Add (' and guzergah like'+#39+cbGuzergah.Text+#37+#39);
              SQL.Add (' and arac_plaka like'+#39+cbAracPlaka.Text+#37+#39);
                SQL.Add (' and guvenlik_sorumlusu like'+#39+cbGSorumlusu.Text+#37+#39);
                  SQL.Add(' order by tarih');
                  Open;

                    frxreport1.ShowReport();

  end;
 end;

procedure TformAracRapor.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  action := cafree;

end;

end.
Cevapla
#2
     Sheet := Excel.Workbooks[1].Sheets[1];
     Range := Sheet.Columns;
     Range.Columns[1].ColumnWidth := 11; // Kolon Genişlikleri
     Range.Columns[2].ColumnWidth := 11;
     Range.Columns[3].ColumnWidth := 14;
     Range.Columns[4].ColumnWidth := 50;
     Range.Columns[5].ColumnWidth := 11;
     Range.Columns[6].ColumnWidth := 11;
     Range.Columns[7].ColumnWidth := 11;
     Range.Columns[8].ColumnWidth := 18;

     // --------- GENEL AYARLAR
     Sheet.Columns['h'].WrapText := True; // Sığmıyorsa Aşağıya Kaydır
     Sheet.Columns['d'].WrapText := True;
     Excel.ActiveSheet.PageSetup.Orientation := 1; // D -Y
     Excel.Cells.HorizontalAlignment := -4131; // Satırları Sola Yasla
     Excel.ActiveSheet.PageSetup.TopMargin := 10; // Üst Kenar Boşluğu
     Excel.ActiveSheet.PageSetup.LeftMargin := 5; // Sol Kenar Boşluğu
     Excel.ActiveSheet.PageSetup.RightMargin := 5; // Sağ Kenar Boşluğu
     Excel.ActiveWindow.DisplayGridlines := True; // Çizgileri Göster
     Excel.ActiveSheet.PageSetup.Zoom := 80; // Sığdır
     Excel.ActiveSheet.Name := 'Playlist'; // Sayfa Adı
     Sheet.Range['a:h'].Borders.Color := clWebGainsboro; // Kenar Renk
     Excel.Range['a:h'].Font.Size := 13;

delphi Code alanında ctrl + d yap


procedure TformAracRapor.BitBtn1Click(Sender: TObject);
var
 tar1: String;
begin
 tar1 := DateToStr(dtBasTarih.Date);
 with module.adoAracRapor do
 begin
   Close;
   SQL.Clear;
   SQL.Add('select * from bt_arac_takip_formu where tarih between ' + #39 +
     DateToStr(dtBasTarih.Date) + #39);
   SQL.Add(' and ' + #39 + DateToStr(dtBitisTarih.Date) + #39);
   SQL.Add(' and arac_surucusu like' + #39 + cbAracSurucu.Text + #37 + #39);
   SQL.Add(' and guzergah like' + #39 + cbGuzergah.Text + #37 + #39);
   SQL.Add(' and arac_plaka like' + #39 + cbAracPlaka.Text + #37 + #39);
   SQL.Add(' and guvenlik_sorumlusu like' + #39 + cbGSorumlusu.Text +
     #37 + #39);
   SQL.Add(' order by tarih');
   Open;
   frxreport1.ShowReport();
 end;
end;

bu şekilde kodların daha hatasız çalışır.
Cevapla
#3
Usese comobj,xlconst ekle,

Hücrenin isim font ve renk özelliklerini ayarlamak için
ExcelApp.ActiveSheet.Rows[1].Font.Name := 'Arial Tur';
ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;

Aralıktaki bütün hücrelerin dört kenarını renklendirir

 SHEET.RANGE['A1:A10'].Borders.Color := $00E88017; 

1 nolu kolonun genişliği 5 olarak ayarlar
ColumnRange := XLApp.Workbooks[1].WorkSheets['Sayfa1'].Columns;
ColumnRange.Columns[1].ColumnWidth := 5; 

1 nolu kolonun fontu koyu olarak ayarlar
 
ColumnRange := XLApp.Workbooks[1].WorkSheets['Sayfa1'].Columns;
ColumnRange.Columns[1].Font.Bold := True;  

1 nolu kolonun font rengi mavi olarak ayarlar
 
ColumnRange := XLApp.Workbooks[1].WorkSheets['Sayfa1'].Columns;
ColumnRange.Columns[1].Font.Color := clBlue;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#4
merhaba hocam xlconst bunu tanımıyor xe8 hata veriyor.
Cevapla
#5
(06-11-2016, Saat: 17:45)emrekilinc1984 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olmerhaba hocam xlconst bunu tanımıyor xe8 hata veriyor.

merhaba [dcc32 Fatal Error] uAracRapor.pas(46): F2613 Unit 'XLConst' not found. hatası veriyor uses'a xlconst eklenyice bunu nasıl çözerim.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Excel satır rengi dilo 3 155 02-01-2018, Saat: 12:05
Son Yorum: dilo
  DbGrid To Excel & DataSet To Excel yhackup 8 734 31-03-2017, Saat: 12:19
Son Yorum: mcuyan
  Nesne Create ve free ile ilgili sorum var. yhackup 10 1.007 03-03-2017, Saat: 11:18
Son Yorum: Tuğrul HELVACI
  Excel sayfa 2 Dostk 3 673 08-12-2016, Saat: 18:01
Son Yorum: Dostk
  Excel Export PDF pro_imaj 15 4.979 08-09-2016, Saat: 21:17
Son Yorum: pro_imaj



Konuyu Okuyanlar: 1 Ziyaretçi