Excel'i Veritabanı Olarak Kullanma Gönderen: dynamo Tarih: 07 April 2007 12:58:57
Excel dosyalarını ADO komponentlerini kullarak veritabanıynış gibi kullanabiliriz.Her bir excel dosyası bir veritabanı,bu dosyadaki her bir sayfa ise Tablo dur.
ADOConnection ile excel'e bağlantı:
//xls Veritabanına bağlan
str:=Edit1.Text; //ecxel dosyası yolu
AdoConnection1.Connected:=False;
AdoConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + str + ';' +
'Extended Properties=Excel 8.0;';
try
AdoConnection1.Open;
except
ShowMessage('Hata....Excele bağlanamadı...');
raise;
end;
perdata.xls dosyası içinde Personel ve Grup adlı 2 sayfamız var.Excel sayfalar "Sayfa1","Sayfa2" şeklinde varsayılan isimleri ile gelir.biz "Personel" ve "Grup" olarak değiştirdik.
ADOQuery den sayfaya bağlantı :
select * from [PERSONEL$]
projenin kodu:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, Buttons,
ComCtrls, FileCtrl, StrUtils;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DBGrid2: TDBGrid;
SpeedButton1: TSpeedButton;
Edit1: TEdit;
OpenDialog1: TOpenDialog;
Label1: TLabel;
Button1: TButton;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
procedure SpeedButton1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.FormShow(Sender: TObject);
begin
OpenDialog1.Filter:='*.xls|*.xls';
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
opendialog1.InitialDir:= ExtractFilePath(application.ExeName);
if opendialog1.Execute then
edit1.Text:=opendialog1.FileName;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
begin
//xls Veritabanına bağlan
str:=Edit1.Text;
AdoConnection1.Connected:=False;
AdoConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + str + ';' +
'Extended Properties=Excel 8.0;';
try
AdoConnection1.Open;
except
ShowMessage('Hata....Excele bağlanamadı...');
raise;
end;
//personel tabloyu seç
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('select * from [PERSONEL$]');
AdoQuery1.Open;
//grup tabloyu seç
AdoQuery2.Close;
AdoQuery2.SQL.Clear;
AdoQuery2.SQL.Add('select * from [GRUP$]');
AdoQuery2.Open;
//-----------------------------------------------------------------------
DBGrid1.Columns.Clear;
DBGrid1.Columns.Add;
DBGrid1.Columns[0].FieldName:='KOD';
DBGrid1.Columns[0].Title.Caption:='KOD';
DBGrid1.Columns[0].Width:=100;
DBGrid1.Columns[0].Title.Font.Color:=clRed;
DBGrid1.Columns.Add;
DBGrid1.Columns[1].FieldName:='AD';
DBGrid1.Columns[1].Title.Caption:='AD';
DBGrid1.Columns[1].Width:=100;
DBGrid1.Columns[1].Color:=clInfoBk;
DBGrid1.Columns.Add;
DBGrid1.Columns[2].FieldName:='GRUP';
DBGrid1.Columns[2].Title.Caption:='GRUP';
DBGrid1.Columns[2].Width:=100;
DBGrid1.Columns.Add;
DBGrid1.Columns[3].FieldName:='ADRES';
DBGrid1.Columns[3].Title.Caption:='ADRES';
DBGrid1.Columns[3].Width:=100;
DBGrid1.Columns.Add;
DBGrid1.Columns[4].FieldName:='TEL';
DBGrid1.Columns[4].Title.Caption:='TEL';
DBGrid1.Columns[4].Width:=100;
//----------------------------------------------------------------------
DBGrid2.Columns.Clear;
DBGrid2.Columns.Add;
DBGrid2.Columns[0].FieldName:='KOD';
DBGrid2.Columns[0].Title.Caption:='KOD';
DBGrid2.Columns[0].Width:=100;
DBGrid2.Columns.Add;
DBGrid2.Columns[1].FieldName:='GRUPADI';
DBGrid2.Columns[1].Title.Caption:='GRUPADI';
DBGrid2.Columns[1].Width:=100;
end;
//kaydet
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ADOQuery1.Insert;
ADOQuery1.FieldByName('KOD').AsString:=Edit2.Text;
ADOQuery1.FieldByName('AD').AsString:=Edit3.Text;
ADOQuery1.Post;
end;
end.

.
Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: FetihlerFatihi Tarih: 07 April 2007 15:04:18
Teşekkürler. Resmi sunucuya attım
Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: olsunartik Tarih: 09 April 2007 11:22:23
Elinize gonlunuze saglik.
Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: kocaturk Tarih: 10 April 2007 04:04:03
paylaşım iyidir paylaşın ayrıca bu paylaşım için teşekkürler
Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: babahayati Tarih: 10 April 2007 09:15:37
dynamo teşekkürler, ellerin dert görmesin
Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: dynamo Tarih: 10 April 2007 12:00:57
teşekkürler.bizde zamanında forum'lardan çok şey öğrendik.
Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: vectorman Tarih: 11 April 2007 11:36:08
asp.net 'de de kullanabilir miyiz bunu. adoyu ? ve exceli
Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: sewda Tarih: 11 April 2007 23:03:38
güzel bir paylaşım,teşekkürler;)
Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: emrecilgin Tarih: 21 May 2007 10:33:42
GÜZEL BİR EXCEL ÖRNEĞİ TEŞEKKÜRLER

Ynt: Excel'i Veritabanı Olarak Kullanma Gönderen: Selmante Tarih: 13 March 2008 13:38:36
çok işime yaradı.
çok teşekkürler...
