هل يمكن التعامل مع ال EXCEL كقاعدة بيانات في الدلفي أو نقل المعلومات من ال EXCEL إلى الدلفي الرجاء الإجابة بأسرع وقت
ربط الدلفي مع ال EXCEL
إستخدامه كقاعدة بيانات!!!، لماذا؟؟؟
يمكنك القراءة والكتابة من اكسل بإستخدام دلفي او اي لغة اخرى عن طريق Ole Automation
يمكنك قراءة المزيد في هذه المواقع
لا تحزن:
إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.
لا تحزن:
فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.
اشكر ك
ولكن هل لي بموقع باللغة العربية
عن كيفية التعامل مع جداول اكسل على الدلفي
تستطيع فعل ذلك بواسطة ADO
سبق و ان انشأت مشروع كامل باستخدام الاكسل على انه قاعد بياتات و ذلك بطلب من الزبون
الا اني واجهت الكثير من المشاكل حليتها كلها و ذلك وهي غير سهلت خصوصا الخاصة بالذاكرة
المشكل الوحيد الذي لم اجد له حل حتي مع خبراء من ميكروسفت هو اذا فتحت الاكسل ووضعت المأشر في خانت قصد الكتابة طبعا اي سترى ان هناك ازرار في الاعلى تصبح غير مفعله هنا اذا قمت بعملية من العمليا ت في مشروعك تضهر لك رسالة خطأ و يتوقف المشروع .
اوضح سؤالك ان كنت مصر على استعماله كقاعدة بيانات كي استطيع الاجابة
تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 30 أغسطس 2008 في 23:02
أخي الكريم
هذا procedure أخذته من برنامج كنت قد صممته منذ فترة للتعامل مع بيانات الزلازل "الله يبعدها عنا "
و فيه أقوم بفتح الإكسل و كتابة بيانات فيه و حتى تنسيق الخلايا
إن شاء الله يكون مفيد
و إذا كان مفيد و أردت أي توضيح خبرني
أولا أضف إلى لائحة uses
الوحدة comobj
var
i,k:integer;
xls,wkb,wks,rng:variant;
nume,numl,numr,numd:integer;
//xlValigncenter,xlthin,xledgeBottom,xldouble,xlthick:integer;
// xllocationasobject,xl3dcolumn,xlcolumns:integer;
begin
if sflist.DBfile <>dbcfile then
exit;
if sflist.Count<1 then
exit;
sflist.GetInfo(nume,numl,numr,numd);
// some data for excel
{xlValigncenter:= -4108;
xlthin:=2;
xledgeBottom:=9;
xldouble:=-4119 ;
xlthick:= 4 ;
xllocationasobject:=-4100;
xl3dcolumn:= 2 ;
xlcolumns:= 2 ; }
try
xls:=createoleobject('excel.application');
except
xls:=getActiveOleObject('excel.application');
end;
wkb:=xls.workbooks.add;
xls.visible:=true;
wks:=wkb.activesheet;
wks.cells[6,1]:='Date';
wks.cells[6,3]:='Time';
wks.cells[6,7]:='Location';
wks.cells[7,1]:='MM';
wks.cells[7,2]:='DD';
wks.cells[7,3]:='Hr';
wks.cells[7,4]:='Mn';
wks.cells[7,5]:='Sec';
wks.cells[7,6]:='T';
wks.cells[7,7]:='Lat-N';
wks.cells[7,8]:='Long-E';
wks.cells[7,9]:='Depth';
wks.cells[7,10]:='RMS';
wks.cells[7,11]:='Mag1';
wks.cells[7,14]:='Mag2';
k:=3;
for i := 1 to sflist.Count do
begin
wks.cells[i+7,1]:=Format('%4d',[sflist.Sfile.Month]);
wks.cells[i+7,2]:=Format('%4d',[sflist.Sfile.Day]);
wks.cells[i+7,3]:=Format('%4d',[sflist.Sfile.Hour]);
wks.cells[i+7,4]:=Format('%4d',[sflist.Sfile.Minute]);
wks.cells[i+7,5]:=Format('%4.1f',[sflist.Sfile.Second]);
wks.cells[i+7,6]:=Format('%s',[sflist.Sfile.DistID]);
if sflist.Sfile.Latitude<> Blank then
wks.cells[i+7,7]:=Format('%6.2f',[sflist.Sfile.Latitude]);
if sflist.Sfile.Longitude<> Blank then
wks.cells[i+7,8]:=Format('%7.2f',[sflist.Sfile.Longitude]);
if sflist.Sfile.Depth<> Blank then
wks.cells[i+7,9]:=Format('%5.1f',[sflist.Sfile.Depth]);
if sflist.Sfile.rms<> Blank then
wks.cells[i+7,10]:=Format('%5.1f',[sflist.Sfile.rms]);
if sflist.Sfile.mag1<>Blank then
begin
wks.cells[i+7,11]:=Format('%4.1f',[sflist.Sfile.mag1]);
wks.cells[i+7,12]:=sflist.Sfile.mag1type;
wks.cells[i+7,13]:=sflist.Sfile.mag1age;
end
else
if sflist.Sfile.mag2<>Blank then
begin
wks.cells[i+7,11]:=Format('%4.1f',[sflist.Sfile.mag2]);
wks.cells[i+7,12]:=sflist.Sfile.mag2type;
wks.cells[i+7,13]:=sflist.Sfile.mag2age;
end;
if sflist.Sfile.mag3<>Blank then
begin
wks.cells[i+7,14]:=Format('%4.1f',[sflist.Sfile.mag3]);
wks.cells[i+7,15]:=sflist.Sfile.mag3type;
wks.cells[i+7,16]:=sflist.Sfile.mag3age;
end;
k:=i;
end;
rng:=wks.range['A6:P'+inttostr(K+7)];
rng.Autoformat(10);
rng.Borders.LineStyle :=1;
rng.borders.color:=rgb(50,210,170);
rng.font.name:='Times New Roman';
rng.HorizontalAlignment:=-4108;
rng.VerticalAlignment:=-4108;
rng.Borders[7].Weight:=4;
rng.Borders[8].Weight:=4;
rng.Borders[9].Weight:=4;
rng.Borders[10].Weight:=4;
rng.Borders[11].Weight:=2;
rng.Borders[12].Weight:=2;
wks.Columns['A:P'].EntireColumn.AutoFit;
xls.userControl:=true;
rng:=wks.range['K8:M'+inttostr(K+7)];
rng.Borders[11].LineStyle :=-4142;
// rng.Borders[12].LineStyle :=-4142;
rng:=wks.range['N8:P'+inttostr(K+7)];
rng.Borders[11].LineStyle :=-4142;
// rng.Borders[12].LineStyle :=-4142;
// statistics
{ wks.cells[k+6,2]:='L';
wks.cells[k+6,3]:=inttostr(numl);
wks.cells[k+7,2]:='R';
wks.cells[k+7,3]:=inttostr(numr);
wks.cells[k+8,2]:='D';
wks.cells[k+8,3]:=inttostr(numd);
wks.cells[k+9,2]:='Total';
wks.cells[k+9,3]:=inttostr(nume);
rng:=wks.range['b'+inttostr(K+6)+':c'+inttostr(K+9)];
rng.Borders.LineStyle :=1;
rng.borders.color:=rgb(50,210,170);
rng.Interior.Color := rgb(250,250,150);
}
// merging some cells
rng:=wks.range['A6:B6'];
rng.merge;
rng:=wks.range['C6:E6'];
rng.merge;
rng:=wks.range['G6:I6'];
rng.merge;
rng:=wks.range['J6:J7'];
rng.merge;
rng:=wks.range['K6:M7'];
rng.merge;
rng:=wks.range['N6:P7'];
rng.merge;
rng:=wks.range['F6:F7'];
rng.merge;
wks.cells[1,1]:='Seismic Event List';
rng:=wks.range['A1:P1'];
rng.merge;
rng.font.name:='Times New Roman';
rng.font.bold:=true;
rng.font.size:=14;
rng.HorizontalAlignment:=-4108;
xls.userControl:=true;
wks.cells[2,1]:='MM: Month; DD: Day; Hr: Hour; Mn: Minutes; Sec: Seconds; T: Type of event; L: Local event;';
rng:=wks.range['A2:P2'];
rng.merge;
rng.font.name:='Times New Roman';
rng.font.size:=12;
// rng.HorizontalAlignment:=-4108;
wks.cells[3,1]:='R: Regional event; D: Distant event; Lat-N: Latitude in degrees; Long-E: Longitude in degrees;';
rng:=wks.range['A3:P3'];
rng.merge;
rng.font.name:='Times New Roman';
// rng.HorizontalAlignment:=-4108;
rng.font.size:=12;
wks.cells[4,1]:='Depth: Depth in Kilometer; RMS: Root Mean Square Residual; Mag: Magnitude.';
rng:=wks.range['A4:P4'];
rng.merge;
rng.font.name:='Times New Roman';
// rng.HorizontalAlignment:=-4108;
rng.font.size:=12;
xls.userControl:=true;
end;
procedure TMainF.Excel2btnClick(Sender: TObject);
تم تعديل هذه المشاركة بواسطة Talal Bader في 21 أكتوبر 2008 في 14:17
زكيري عبد العالي كتب:تستطيع فعل ذلك بواسطة ADO
سبق و ان انشأت مشروع كامل باستخدام الاكسل على انه قاعد بياتات و ذلك بطلب من الزبون
الا اني واجهت الكثير من المشاكل حليتها كلها و ذلك وهي غير سهلت خصوصا الخاصة بالذاكرة
المشكل الوحيد الذي لم اجد له حل حتي مع خبراء من ميكروسفت هو اذا فتحت الاكسل ووضعت المأشر في خانت قصد الكتابة طبعا اي سترى ان هناك ازرار في الاعلى تصبح غير مفعله هنا اذا قمت بعملية من العمليا ت في مشروعك تضهر لك رسالة خطأ و يتوقف المشروع .
اوضح سؤالك ان كنت مصر على استعماله كقاعدة بيانات كي استطيع الاجابة
من فضلك اكتب لنا البروفيدر او ادرج لنا مشروع صغير للتعلم
f2ij soft كتب:من فضلك اكتب لنا البروفيدر او ادرج لنا مشروع صغير للتعلم
اين البروفيدر Provider من فضلك لو كان يمكن استخدام ado وضح لنا البروفيدر Provider او ضع لنا ملف *.udl
زكيري عبد العالي كتب:تستطيع فعل ذلك بواسطة ADO
سبق و ان انشأت مشروع كامل باستخدام الاكسل على انه قاعد بياتات و ذلك بطلب من الزبون
الا اني واجهت الكثير من المشاكل حليتها كلها و ذلك وهي غير سهلت خصوصا الخاصة بالذاكرة
المشكل الوحيد الذي لم اجد له حل حتي مع خبراء من ميكروسفت هو اذا فتحت الاكسل ووضعت المأشر في خانت قصد الكتابة طبعا اي سترى ان هناك ازرار في الاعلى تصبح غير مفعله هنا اذا قمت بعملية من العمليا ت في مشروعك تضهر لك رسالة خطأ و يتوقف المشروع .
اوضح سؤالك ان كنت مصر على استعماله كقاعدة بيانات كي استطيع الاجابة
لو فى بروفيدر اتمنى ان اى احد يكتبه لنا اما اذا لم يكن فمن فضل الجميع كتابت الموضوعات المثبت انها صحيحة
مع العلم انى قمت من 3 سنوات بعمل بحث اكاديمى فى الدرسات العليا عن excel واستخدامة كاقاعدة بيانات ولم اجد بروفيد حتى اتعاملة معة باستخدام ado
شكرا
السلام عليكم ورحمة الله
إلى من يريد provider وصل Ado مع Excel 2010
Provider=Microsoft.ACE.OLEDB.12.0;' +
'Data Source=' + ThePath + ';' +
'Extended Properties="Excel 12.0;HDR=YES;"';// Data Source=c:\myFolder\myExcel2007file.xlsx;Extended ;