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
#6
bir tuhaf istekte benden lütfen,
Oluşturudugum excel sayfasındaki a1 a2 hücrelerine sayfa2 sayfa3 e link vermek istiyorum ama beceremedim
Cevapla
#7
Merhaba.
- Bu bir Excel sorusu aslında.

- Sayfa2 ve Sayfa3 'teki birer hücreyi, Sayfa1'in "a1" ve "a2" hücresinde göstermek istediğiniz anlıyorum, soruyu doğru anlamışım değil mi ?

- Size formülü elde etmenin yolunu anlatayım
* Excel'i açın
* Hedef Sayfa üzerindeki Hedef Hücreye gidin ve  =  (eşittir) işaretine basın.
* Kaynak Sayfa üzerindeki Kaynak Hücreye gidip seçin ve ENTER  tuşuna basın.

Hedef hücrede ilgili sayfa ve hücre için bir formül oluşacaktır. 
Bu formatı projenizde dilediğiniz şekilde esnetebilirsiniz.

Örneğinize göre :
Kod:
"a1" için hücre değeri  "=Sayfa2!A1"
"a2" için hücre değeri  "=Sayfa3!A1"

gibi olacaktır. Yani arasında "!" işareti ile ayrılmış sayfa adı ve hücre adresi şeklinde oluştu. Idea
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#8
(23-04-2018, Saat: 13:38)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba.
- Bu bir Excel sorusu aslında.

- Sayfa2 ve Sayfa3 'teki birer hücreyi, Sayfa1'in "a1" ve "a2" hücresinde göstermek istediğiniz anlıyorum, soruyu doğru anlamışım değil mi ?

- Size formülü elde etmenin yolunu anlatayım
* Excel'i açın
* Hedef Sayfa üzerindeki Hedef Hücreye gidin ve  =  (eşittir) işaretine basın.
* Kaynak Sayfa üzerindeki Kaynak Hücreye gidip seçin ve ENTER  tuşuna basın.

Hedef hücrede ilgili sayfa ve hücre için bir formül oluşacaktır. 
Bu formatı projenizde dilediğiniz şekilde esnetebilirsiniz.

Örneğinize göre :
Kod:
"a1" için hücre değeri  "=Sayfa2!A1"
"a2" için hücre değeri  "=Sayfa3!A1"

gibi olacaktır. Yani arasında "!" işareti ile ayrılmış sayfa adı ve hücre adresi şeklinde oluştu. Idea

Yok _ a1 e tıkladıgım zaman sayfa2 ye link olsun
yani sayfa2 açılsın şeklinde ayarlamak istiyorum hücre özelliğini

yapabilirmiyim ?
Cevapla
#9
Macro Kaydet deyin sonra ilgili sayfaya geçin sonra kaydı durdurun.
Kaydettiğiniz makroya bakınca şöyle bir komut göreceksiniz.
Sheets("Sayfa2").Select

Yukarıdan Geliştirici sayfasını aktifleştirin o hücreye bir button koyun ve bu makroyu atayın.

Butona basınca kullanıcı da bilerek ilgili sayafaya geçmiş olsun, sonra hücreye tıklayınca ne oluyor demesin Smile
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#10
(23-04-2018, Saat: 14:32)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMacro Kaydet deyin sonra ilgili sayfaya geçin sonra kaydı durdurun.
Kaydettiğiniz makroya bakınca şöyle bir komut göreceksiniz.
   Sheets("Sayfa2").Select

Yukarıdan Geliştirici sayfasını aktifleştirin o hücreye bir button koyun ve bu makroyu atayın.

Butona basınca kullanıcı da bilerek ilgili sayafaya geçmiş olsun, sonra hücreye tıklayınca ne oluyor demesin Smile

süperrr. bu işi deplhi aracılıgı ile yapmak istiyorum. Yani datalarımı excele aktardım ve ana sayfadayken a1 hücresine tıkladıgımda bir hiyperlik çalışsın istiyom. bu konuda yardımcı olurmusunuz lütfen
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Excel Export PDF pro_imaj 16 5.495 04-07-2018, Saat: 18:21
Son Yorum: pro_imaj
  Excel, PDF ve Yazıcı formu Component 3ddark 8 223 22-06-2018, Saat: 14:46
Son Yorum: edo
  Uzak Sunucu ile ilgili Bay_Y 3 192 08-06-2018, Saat: 10:36
Son Yorum: Bay_Y
  bir db,tablodan başka bir db, tabloya aktarım erdogan 9 318 10-04-2018, Saat: 09:09
Son Yorum: erdogan
  Excel satır rengi dilo 3 374 02-01-2018, Saat: 12:05
Son Yorum: dilo



Konuyu Okuyanlar: 1 Ziyaretçi