Text bilgileri Excel atmak ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
megonal
Üye
Mesajlar: 23
Kayıt: 15 Ara 2004 03:06

Text bilgileri Excel atmak ?

Mesaj gönderen megonal »

Benim küçük bir sorum olacak delphi 7 kullanıyorum...
Elimde olan bazı text dosyalarında yazılı ve virgül boşluk ile ayrılmış bilgileri delphi 7 de bir program yazarak excel tablolarına aktarmam gerekli bunun için nasıl bir yol izlemem gerekli...

Forumu araştırtım ancak bunu anlatan bir yazı göremedim.
Yardımcı olacaklara şimdiden teşekkürler...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

bunları direk Excel'de açabilirsin. Excel Text dosyaları açarken, gerekli ayarlardan , ile ayırdığını belirtmen yeterli . Açtığın zaman zaten bir sihirbaz çıkıyor ve seni yönlendiriyor.

Eğer Delphi ile yapmak istiyorsan çeşitli yolları, defalarca konuştuk. :ara Excel

Kolay gelsin.
megonal
Üye
Mesajlar: 23
Kayıt: 15 Ara 2004 03:06

Hepsini taratım

Mesaj gönderen megonal »

Excel için tüm çıkan arama kayıtlarını inceledim. Çoğunluğu database bağlantısı yapmak için bilgi vermiş.
Ancak benim yapmak istediğimi gösteren bir mesaj göremedim...

Aslında çok basit bir şey ama bir türlü beceremiyorum.

Yukarıda yazdığım gibi benim yapmak istediğim text dosyasını delphi yardımı ile excel tablasuna dönüştürmek...
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

aramada karşına çıkan ve herhangi bir veritabanından excel' aktarma için kullanılan kodu değiştirerek kullanabilirsin.

Veritabanından kaydı aldığı kod yerine text dosyasından veya bu text dosyasını attığın herhangi bir yerden aldırıp excel'e gönderebilirsin.

Kolay Gelsin...
Oldeye Software
http://www.oldeye.com
megonal
Üye
Mesajlar: 23
Kayıt: 15 Ara 2004 03:06

İyi güzelde :)

Mesaj gönderen megonal »

Tüm senin söylediklerinide denedim...
Bulduğum tüm kaynaklarda tam tersi durumu anlatıyorlar. " Excel dosyasından nasıl database aktarırım " durum böyle olunca bunu tersine çeviremedim...

Database işini yapabiliyorum, ama arada hiçbir şey olmadan text dosyasını direkt excel atabilecek birşey yok...
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

// Not : Uses Kısmında ComObj eklemeyi unutmayın !!!!!!

Kod: Tümünü seç

procedure DBGridToExcell(DBG:TDBGrid; FileName:String);
var
  EXCEL, WORKBOOK, SHEET:VARIANT;
  DBGDataset: TDataSet;
  k1,k2,k3:Integer;
begin
  DBGDataset:=DBG.DataSource.DataSet;
  k3:=DBGDataset.RecNo;
  DBGDataset.DisableControls;

  EXCEL := CREATEOLEOBJECT('EXCEL.APPLICATION');
  EXCEL.VISIBLE :=False;
  WORKBOOK :=EXCEL.WORKBOOKS.ADD;
  SHEET:=WORKBOOK.WORKSHEETS[1];
  try
    For k1:=0 to DBG.Columns.Count-1 do
    begin
      SHEET.CELLS[1,k1+1]:=DBG.Columns[k1].Field.DisplayName;
      SHEET.Columns[k1+1].ColumnWidth:=(0.139*DBG.Columns[k1].Width);
    end;
    DBGDataset.First;  k2:=1;
    While not(DBGDataset.Eof) do
    begin
      k2:=k2+1;
      For k1:=0 to DBG.Columns.Count-1 do
      begin
        SHEET.CELLS[k2,k1+1]:=DBG.Columns[k1].Field.AsString;
      end;
      DBGDataset.Next;
    end;
    WORKBOOK.SaveAs(FileName);
    ShowMessage('Excell Formatında Kayıt Tamamlandı');
  finally
    EXCEL.DisplayAlerts := False;
    EXCEL.Quit;
    EXCEL:=Unassigned;
    DBGDataset.RecNo:=k3;
    DBGDataset.EnableControls;
  end;
end;

//Kullanımı
// DBGridToExcell(DBGrid1, 'C:\Deneme.xls');
Benim bi projemden kopyaladım dbgridteki bilgileri direkt excel e aktarıyor. Bunu istediğin gibi değiştirebilirsin sanırım.


Kolay Gelsin....
Oldeye Software
http://www.oldeye.com
megonal
Üye
Mesajlar: 23
Kayıt: 15 Ara 2004 03:06

Daha açık yazabilirmisin :)

Mesaj gönderen megonal »

Kusura bakma işin içinden çıkamadım...
Yazdıklerını uyguladım procedure çalışıyor ancak text dosyasını alamıyorum...
Yine databaselerle uğraşmak istemiyorum...

Arada birşey olmadan text dosyasını bir memo ya okutuyorum. oradan lines lines almaya çalıştım ancak olmadı...

Vaktinizi alıyorum ancak bunu yaparsan bayağı ilerlemiş olacağım...

Sevgiler
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

Yapabileceğin en kolay şey bence bu verileri memoya atacağına satır satır StringGrid'e atıp buradan da bu procedure ile excel'e aktarabilirsin.

Sadece procedure deki
DBG:TDBGrid; tanımlamasını
DBG:TStringGrid; olarak değiştirmen yeterli olacağını zannediyorum.

Senin yapman gereken tek şey text'i StringGrid içerisine atman.
Oldeye Software
http://www.oldeye.com
megonal
Üye
Mesajlar: 23
Kayıt: 15 Ara 2004 03:06

Oldu galiba...

Mesaj gönderen megonal »

Şu şekilde bir şeyler yaptım oldukça güzel çalıştı...
Memoya almamın sebebi daha delphi'ye yeni başlamış olmam ve database işini fazla kıvıramadığımdandır. İleride daha güzelinide yollarım...

Yardımlarınız için teşekkürler

Sevgiler
----

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var
 EXCEL, WORKBOOK, SHEET:VARIANT;

begin
EXCEL := CREATEOLEOBJECT('EXCEL.APPLICATION');{EXCEL 'İ AÇMA}
EXCEL.VISIBLE :=TRUE;{EXCEL 'İ AKTİF YAPMA}
WORKBOOK :=EXCEL.WORKBOOKS.ADD;{KİTAP EKLEME}

SHEET:=WORKBOOK.WORKSHEETS[1];{SAYFA NUMARASI}


begin
 SHEET.CELLS[1,1]:= memo3.Lines[0];
 for nes:=0 to 4 do
 begin
 SHEET.CELLS[nes+2,1]:= memo2.Lines[nes]; {SATIR,SÜTUN} //Buradan Satır ve Sütunlara erişebilirsiniz.
 end;
end;

---------
USES
comobj

eklenir...
Cevapla