الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الربط مع اكسل

بدأه زكيري عبد العالي في 7 مارس 2009 · 2 رد · 3,593 مشاهدة · في Delphi .NET/PRISM
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــة ،،

بنفس الطريقة السايقة لربط مع اسكل سرفر هذا مثال عن الربط بالاكسل عن طريق OleDB

هي كلاس كاملة و في المثال استعملت سوي العرض

 

namespace GEST_Farm[color= #339933;];

[color= #000000; font-weight: bold;]interface

uses

  [color= #990000;]System[color= #339933;].Collections[color= #339933;].Generic[color= #339933;],

  [color= #990000;]System[color= #339933;].Linq[color= #339933;],

  [color= #990000;]System[color= #339933;].Text[color= #339933;],

  [color= #990000;]System[color= #339933;].Data[color= #339933;],

  [color= #990000;]System[color= #339933;].Data[color= #339933;].OleDb[color= #339933;];

type

  OleExcel [color= #339933;]= [color= #000000; font-weight: bold;]public [color= #000000; font-weight: bold;]class

  [color= #000000; font-weight: bold;]private

       _iNbRows    [color= #339933;]:Integer[color= #339933;];

       _iNbCols    [color= #339933;]:Integer[color= #339933;];

       _strCnx     [color= #339933;]:String[color= #339933;]; 

       _OleCnx     [color= #339933;]:OleDbConnection[color= #339933;];

       _OleCmd     [color= #339933;]:OleDbCommand[color= #339933;];

       _OleReader  [color= #339933;]:OleDbDataReader[color= #339933;];

       _OleDA      [color= #339933;]:OleDbDataAdapter[color= #339933;];

       _OleDs      [color= #339933;]:DataSet[color= #339933;];

 

 

  protected

  [color= #000000; font-weight: bold;]public

         METHOD connect[color= #009900;](sPath[color= #339933;]:string[color= #009900;])[color= #339933;]:Boolean[color= #339933;];

         METHOD NbRows[color= #339933;]:integer[color= #339933;];

         METHOD NbCols[color= #339933;]:integer[color= #339933;];

         METHOD OleDs[color= #339933;]:DataSet[color= #339933;];

         METHOD OleCnx[color= #339933;]:OleDbConnection[color= #339933;];

         METHOD deconnect[color= #009900;]([color= #009900;])[color= #339933;]:boolean[color= #339933;];

         METHOD GetQueryResult[color= #009900;](sSql[color= #339933;]:string[color= #009900;])[color= #339933;]: Object[color= #339933;];

         METHOD Remplir[color= #009900;](sSQL[color= #339933;]:string[color= #009900;])[color= #339933;]:string[color= #339933;];

         METHOD nonQueryOrder[color= #009900;](sSQL[color= #339933;]:string[color= #009900;])[color= #339933;]:boolean[color= #339933;];

 

      constructor [color= #339933;];            

  [color= #990000;]end[color= #339933;];

 

implementation

[color= #666666; font-style: italic;]/// <summary>Constructeur de la classe</summary>

 constructor OleExcel[color= #339933;];

 BEGIN

      _iNbRows   [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];

      _iNbCols   [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];

      _OleCnx    [color= #339933;]:= [color= #000000; font-weight: bold;]new OleDbConnection[color= #339933;];

      _OleCmd    [color= #339933;]:= [color= #000000; font-weight: bold;]new OleDbCommand[color= #339933;];

      _OleReader [color= #339933;]:= nil[color= #339933;];

      _OleDs     [color= #339933;]:= [color= #000000; font-weight: bold;]new DataSet[color= #339933;];

 [color= #990000;]END[color= #339933;];

 

METHOD OleExcel[color= #339933;].connect[color= #009900;](sPath[color= #339933;]:string[color= #009900;])[color= #339933;]:Boolean[color= #339933;];

BEGIN

[color= #666666; font-style: italic;]// Chaine de connexion

    _strCnx [color= #339933;]:= [color= #0000ff;]'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' [color= #339933;]+ 

                  sPath [color= #339933;]+ [color= #0000ff;]';Extended Properties=' [color= #339933;]+

                 char[color= #009900;]([color= #cc66cc;]34[color= #009900;]) [color= #339933;]+[color= #0000ff;]'Excel 8.0;HDR=Yes;' [color= #339933;]+ char[color= #009900;]([color= #cc66cc;]34[color= #009900;]) [color= #339933;]+   [color= #0000ff;]';'[color= #339933;];

    [color= #666666; font-style: italic;]// vérification globale des données entrantes

   [color= #b1b100;]IF [color= #009900;](sPath [color= #339933;]<> string[color= #339933;].[color= #990000;]Empty[color= #009900;]) THEN

   BEGIN

       [color= #b1b100;]IF[color= #009900;]([color= #990000;]System[color= #339933;].IO[color= #339933;].[color= #990000;]File[color= #339933;].Exists[color= #009900;](sPath[color= #009900;])[color= #009900;])THEN

       BEGIN

           _OleCnx [color= #339933;]:= [color= #000000; font-weight: bold;]new [color= #990000;]System[color= #339933;].Data[color= #339933;].OleDb[color= #339933;].OleDbConnection[color= #009900;](_strCnx[color= #009900;])[color= #339933;];

           _iNbCols [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];

           _iNbRows [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];

           TRY

              [color= #666666; font-style: italic;]// ouvertur de la connexion

              _OleCnx[color= #339933;].Open[color= #009900;]([color= #009900;])[color= #339933;];

              Result[color= #339933;]:= [color= #000000; font-weight: bold;]true[color= #339933;];

           EXCEPT ON E[color= #339933;]:Exception [color= #b1b100;]DO 

              Result[color= #339933;]:= [color= #000000; font-weight: bold;]false[color= #339933;];

           [color= #990000;]END[color= #339933;]; 

       [color= #990000;]END[color= #339933;]; 

    [color= #990000;]END[color= #339933;]; 

[color= #990000;]END[color= #339933;];

 

[color= #666666; font-style: italic;]// Récupère le nombre de ligne d'une requête

METHOD OleExcel[color= #339933;].NbRows[color= #339933;]:integer[color= #339933;];

BEGIN

     Result[color= #339933;]:= _iNbRows[color= #339933;];

[color= #990000;]END[color= #339933;];

 

[color= #666666; font-style: italic;]// Récupère le nombre de colone d'une requête

METHOD OleExcel[color= #339933;].NbCols[color= #339933;]:integer[color= #339933;];

BEGIN

     Result[color= #339933;]:=_iNbCols[color= #339933;];

[color= #990000;]END[color= #339933;];

 

[color= #666666; font-style: italic;]// DataSet

METHOD OleExcel[color= #339933;].OleDs[color= #339933;]:DataSet[color= #339933;];

BEGIN

     Result[color= #339933;]:=_OleDs[color= #339933;];

[color= #990000;]END[color= #339933;];

 

[color= #666666; font-style: italic;]// SqlConnection

METHOD OleExcel[color= #339933;].OleCnx[color= #339933;]:OleDbConnection[color= #339933;];

BEGIN

    Result[color= #339933;]:=_OleCnx[color= #339933;];

[color= #990000;]END[color= #339933;];

 

[color= #666666; font-style: italic;]// Lance un ordre de déconnexion de la base de données SQLServer

METHOD OleExcel[color= #339933;].deconnect[color= #009900;]([color= #009900;])[color= #339933;]:boolean[color= #339933;];

BEGIN

    TRY

    BEGIN

        _OleCnx[color= #339933;].Close[color= #009900;]([color= #009900;])[color= #339933;];

        Result[color= #339933;]:= [color= #000000; font-weight: bold;]true[color= #339933;];

    [color= #990000;]END

    Except

        Result[color= #339933;]:= [color= #000000; font-weight: bold;]false[color= #339933;];

    [color= #990000;]END[color= #339933;];

[color= #990000;]END[color= #339933;];

 

[color= #666666; font-style: italic;]// <summary>Récupère les valeurs d'une requête</summary>

[color= #666666; font-style: italic;]// <param name="sSql">Requête à exécuter</param>

[color= #666666; font-style: italic;]// <returns>Renvoi les valeurs de la requête sans les valeurs NULL</returns>

METHOD OleExcel[color= #339933;].GetQueryResult[color= #009900;](sSql[color= #339933;]:string[color= #009900;])[color= #339933;]: Object[color= #339933;];

[color= #000000; font-weight: bold;]VAR

   oArrResult[color= #339933;]:TOBJ[color= #339933;];

   j[color= #339933;],i[color= #339933;]:integer[color= #339933;];

BEGIN

   _OleCmd [color= #339933;]:= [color= #000000; font-weight: bold;]new OleDBCommand[color= #009900;](sSql[color= #339933;], _OleCnx[color= #009900;])[color= #339933;];

   _OleReader [color= #339933;]:= nil[color= #339933;];

   _OleReader [color= #339933;]:= _OleCmd[color= #339933;].ExecuteReader[color= #009900;]([color= #009900;])[color= #339933;];

   _iNbRows [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];

   _iNbCols [color= #339933;]:= _OleReader[color= #339933;].FieldCount[color= #339933;];

   [color= #666666; font-style: italic;]// Initialisation du tableau de retour

   [color= #b1b100;]WHILE _OleReader[color= #339933;].Read[color= #009900;]([color= #009900;]) [color= #b1b100;]DO

   BEGIN

         _iNbRows[color= #339933;]:=_iNbRows[color= #cc66cc;]+1[color= #339933;];

   [color= #990000;]END[color= #339933;];

   oArrResult [color= #339933;]:= [color= #000000; font-weight: bold;]new TOBJ[color= #009900;](_iNbRows[color= #339933;],_iNbCols[color= #009900;])[color= #339933;];

   _OleReader[color= #339933;].Close[color= #009900;]([color= #009900;])[color= #339933;];

   [color= #666666; font-style: italic;]// Remplissage du tableau de retour

   TRY

   BEGIN

       _OleReader [color= #339933;]:= _OleCmd[color= #339933;].ExecuteReader[color= #009900;]([color= #009900;])[color= #339933;];

       i [color= #339933;]:= [color= #cc66cc;]0[color= #339933;];

       [color= #b1b100;]WHILE [color= #009900;](_OleReader[color= #339933;].Read[color= #009900;]([color= #009900;])[color= #009900;]) [color= #b1b100;]DO

       BEGIN

           [color= #b1b100;]FOR j[color= #339933;]:=[color= #cc66cc;]0 TO _iNbCols[color= #cc66cc;]-1 [color= #b1b100;]DO

           BEGIN

               [color= #b1b100;]if not _OleReader[color= #339933;].IsDBNull[color= #009900;](j[color= #009900;]) then     [color= #666666; font-style: italic;]//Supprime les NULL comme moi

                  [color= #666666; font-style: italic;]//oArrResult[i,j] := _OleReader.GetSqlValue(j)

               [color= #b1b100;]else

                  [color= #666666; font-style: italic;]//oArrResult[i,j] := '';

               [color= #990000;]END[color= #339933;];

                 i[color= #339933;]:=i[color= #cc66cc;]+1[color= #339933;];

           [color= #990000;]END[color= #339933;];

       [color= #990000;]END[color= #339933;];

   EXCEPT

   BEGIN [color= #666666; font-style: italic;]//    gestionErreur(SQLEx);

        Result [color= #339933;]:= nil[color= #339933;];

   [color= #990000;]END[color= #339933;];

   _OleReader[color= #339933;].Close[color= #009900;]([color= #009900;])[color= #339933;];

   _OleCmd    [color= #339933;]:= nil[color= #339933;];

   _OleReader [color= #339933;]:= nil[color= #339933;];

   Result[color= #339933;]:= oArrResult[color= #339933;];

   [color= #990000;]END[color= #339933;];

[color= #990000;]END[color= #339933;];

 

[color= #666666; font-style: italic;]// <summary>Récupère les valeurs d'une requête pour remplir une liste, un datagrid, ...</summar
y>

[color= #666666; font-style: italic;]// <param name="sSql">Requête à exécuter</param>

[color= #666666; font-style: italic;]// <returns>Renvoi les valeurs de la requête</returns>

METHOD OleExcel[color= #339933;].Remplir[color= #009900;](sSQL[color= #339933;]:string[color= #009900;])[color= #339933;]:string[color= #339933;];

BEGIN

    _OleDs[color= #339933;].Clear[color= #009900;]([color= #009900;])[color= #339933;];

    TRY

       _OleDA [color= #339933;]:= [color= #000000; font-weight: bold;]new OleDBDataAdapter[color= #009900;](sSQL[color= #339933;],_OleCnx[color= #009900;])[color= #339933;];

       _OleDA[color= #339933;].Fill[color= #009900;](_OleDs[color= #009900;])[color= #339933;];

       _OleDA[color= #339933;].Dispose[color= #009900;]([color= #009900;])[color= #339933;];

       Result[color= #339933;]:= [color= #0000ff;]''[color= #339933;];

    EXCEPT ON E[color= #339933;]:Exception [color= #b1b100;]DO   [color= #666666; font-style: italic;]//gestionErreur(SQLEx);

           [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].MessageBox[color= #339933;].show[color= #009900;](E[color= #339933;].message[color= #009900;])[color= #339933;];

           [color= #666666; font-style: italic;]//Result:= nil;

    [color= #990000;]END[color= #339933;];

      _OleDA [color= #339933;]:= nil[color= #339933;];    

[color= #990000;]END[color= #339933;];

 

[color= #666666; font-style: italic;]// <summary>Lance un ordre SQL de INSERT, UPDATE ou DELETE</summary>

[color= #666666; font-style: italic;]// <param name="sSql">Requête à exécuter</param>

[color= #666666; font-style: italic;]// <returns>Renvoi true si l'odre SQL s'est déroulé normallement, false sinon</returns>

METHOD OleExcel[color= #339933;].nonQueryOrder[color= #009900;](sSQL[color= #339933;]:string[color= #009900;])[color= #339933;]:boolean[color= #339933;];

BEGIN

    _OleCmd [color= #339933;]:=[color= #000000; font-weight: bold;]new OleDBCommand[color= #009900;](sSql[color= #339933;], _OleCnx[color= #009900;])[color= #339933;];

    TRY

    BEGIN

        _OleCmd[color= #339933;].ExecuteNonQuery[color= #009900;]([color= #009900;])[color= #339933;];

        Result[color= #339933;]:= [color= #000000; font-weight: bold;]true[color= #339933;];

    [color= #990000;]END[color= #339933;];

    EXCEPT

    BEGIN  [color= #666666; font-style: italic;]//            gestionErreur(SQLEx);

        Result[color= #339933;]:= [color= #000000; font-weight: bold;]false[color= #339933;];

    [color= #990000;]END[color= #339933;];

    [color= #990000;]END[color= #339933;];

    _OleCmd [color= #339933;]:= nil[color= #339933;];

[color= #990000;]END[color= #339933;];

[color= #990000;]end[color= #339933;].

 

method MainForm[color= #339933;].button1_Click[color= #009900;](sender[color= #339933;]: [color= #990000;]System[color= #339933;].Object[color= #339933;]; e[color= #339933;]: [color= #990000;]System[color= #339933;].EventArgs[color= #009900;])[color= #339933;];

CONST

     vXlsPath[color= #339933;]=[color= #0000ff;]'c:[color= #000099; font-weight: bold;]DATA.xls'[color= #339933;];

[color= #000000; font-weight: bold;]VAR

    o_OleExcel[color= #339933;]:GEST_Farm[color= #339933;].OleExcel[color= #339933;];

begin

      o_OleExcel[color= #339933;]:= [color= #000000; font-weight: bold;]new GEST_Farm[color= #339933;].OleExcel[color= #339933;];

      [color= #b1b100;]if[color= #009900;](o_OleExcel[color= #339933;].connect[color= #009900;](vXlsPath[color= #009900;])[color= #009900;])then

         [color= #b1b100;]if o_OleExcel[color= #339933;].Remplir[color= #009900;]([color= #0000ff;]'SELECT CODE,NOM,PNOM,AGE FROM [Table1$]'[color= #009900;])[color= #339933;]=[color= #0000ff;]'' then

             bindingSource1[color= #339933;].DataSource[color= #339933;]:=o_OleExcel[color= #339933;].OleDs[color= #339933;].Tables[color= #009900;][[color= #cc66cc;]0[color= #009900;]][color= #339933;];

             dataGridView1[color= #339933;].DataSource[color= #339933;]:=bindingSource1[color= #339933;];

             bindingNavigator1[color= #339933;].BindingSource[color= #339933;]:=bindingSource1[color= #339933;];

             o_OleExcel[color= #339933;].deconnect[color= #009900;]([color= #009900;])[color= #339933;];

[color= #990000;]end[color= #339933;];

post-1034-1236380489_thumb.jpg

GEST_Farm.rar

post-1034-1236380640_thumb.jpg

#2

شكرا ولك تحياتي

الرجاء المساعده في هذا الموضوع

/index.ph...p;#entry1026483

100% Muslim Sunni

█║│█│║▌║││█║

█║│█│║▌║││█║

3619003249802010

Mahjooob Ibrahim

█║│█│║▌║││█║

█║│█│║▌║││█║

3619003249802010

#3

هل الاكسل مثبه في السرفر اي 2003

وهل هو نفس الاصدار الذي موجود في جهازك قيل رفعه الى السرفر .

مواضيع مشابهة