ارسال و دریافت اطلاعات Excel
شاید برای شما هم پیش آمده که مایل به باز کردن یک فایل Excel توسط دلفی و ذخیره اطلاعات درون آن باشید. راه حل این امر بسیار ساده است، کافیست که شما کمی ADO (dbgo)در دلفی بلد باشید. بله دوستان دسترسی به فایلهای Excel مانند بانک اطلاعاتی می باشد با کمی تفاوت.

جهت باز کردن یک فایل Excel ابتدا بایستی توسط برنامه با آن ارتباط برقرار کنیم. پس لازم است یک جزء AdoConnection روی فرم قرار دهیم و سپس رشته اتصال آن را با مقادیر زیر تنظیم کنیم: ( من پیشنهاد می کنم که این کد را در رویداد OnCreate فرم قرار دهید)
AdoConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=مسیر و نام فایل اکسل;'+
'Extended Properties=Excel 8.0;';
AdoConnection1.Open;
تا اینجا ما فقط یک ارتباط بین برنامه و فایل مورد نظر برقرار کردیم. حال برای واکشی اطلاعات دلخواه از فایل بایستی از یک جزء ADOQuery استفاده کنیم پس یک جزء ADOQuery1 روی فرم قرار دهید و خصوصیت Connection آنرا برابر AdoConnection1 قرار دهید و در خصوصیت SQL مربوط به آن بایستی کد زیر را وارد کنید:
'SELECT * FROM [نام شیت$]';
example : 'SELECT * FROM [Sheet1$]';
حتما باید از علامت $ در انتهای نام شیت استفاده کنید.
اکنون باید برای دیدن اطلاعات بر روی فرم از یک جز DBGrid استفاده کنید و آنرا توسط یک جز DataSource باADOQuery مرتبط سازید. پس یک جزء DataSource1 روی فرم قرار دهید و خصوصیت Dataset آنرا برابر با ADOQuery1 قرار دهید و سپس یک جزء DBGrid1 روی فرم قرار داده و خصوصیت DataSource آنرا برابر با DataSource1 قرار دهید. کدی در زیر آماده کرده ام که با یک فایل اکسل در درایو E: ارتباط برقرار کرده و سپس محتوای شیت اول آنرا نمایش می دهد، من در این مثال خصوصیت مربوط به اجزاء را بصورت کد نویسی تنظیم کرده ام در حالی که شما می توانید در هنگام طراحی این عمل را انجام دهید: این فقط یک کد کلاسیک می باشد و داشتن یه برنامه کاملا نیاز به سلیقه فردی دارد.
procedure TForm1.FormCreate(Sender: TObject);
begin
AdoConnection1.LoginPrompt := False;
AdoConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source= E:\Book1.xls ;'+
'Extended Properties=Excel 8.0;';
AdoConnection1.Open;
AdoQuery1.Connection := AdoConnection1;
DataSource1.DataSet := AdoQuery1;
DBGrid1.DataSource := DataSource1;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='SELECT * FROM [Sheet1$]';
Open;
end; //پایان کویری
end;// پایان زیر برنامه
اکنون برنامه را اجرا کنید و نتیجه را ببینید!! می بینید که در عنوان بالای DBGrid نام فیلدها همان آدرس مربوط به سلولهای اکسل می باشد. حالا شما می توانید به هر سلولی که دوست دارید رفته و اطلاعات را تغیر دهید یا اطلاعات جدید را وارد کنید و پس از خروج از برنامه آن فایل را در اکسل باز کنید و نتیجه را مشاهده کنید. لازم به ذکر است که خدمت شما عرض کنم جهت استفاده از این برنامه نیازی نیست که برنامه اکسل روی سیستم شما نصب باشد و بدون آن نیز برنامه جواب می دهد.
