دلفي تعليم
مرحبا بكم ايها الزئر أو الزائرة الكريمين

كيفية قراءة سطر أو عمود من ملف اكسال بـدلفي

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

كيفية قراءة سطر أو عمود من ملف اكسال بـدلفي

مُساهمة  mah11 في 23/12/2013, 7:46 pm

بسم الله الرحمن الرحيم
والصلاة والسلام على رسول الله

شرح ،  كيفية قراءة  سطر أو عمود من ملف اكسال  بـدلفي  .
أولا :
بعد كتابة الكود في دلف ي   كـــومبيلي البرنامج  بــــــــــــــ  كونترول أف ناف فقط وشغله خارج دلفي  وبعد تشغيل
اكتب اسم الملف في الكومبو بوكس1  وانقر على زر الحفظ أي رجيستري لو فيشي  وفي الرسالة مسج انقر نعم
وبعد ذلك   انقر على  "  شارج ليست  "  في مربع الحوار أوبن ديالوق حدد اسم أو  اسماء  ملفات اكسال
وانقر  أوفرير .....   ظهور اسم أو اسماء  في ليست بوكس انقر على أحدها  ظهور مساج  انقر موفق
وهذا طبعا بعد تحديد السطر والعمود  في البرنامج في الاماكن المخصصة لهــا  للقراءة منهــا  أي تحديد  خلية البدء
مثلا   بي 4 =  ممثلة 2، 4  وكذلك تحديد خلية  إنهاء القراءة  من الملف اكسال
انقر أوفرير اكسال لعرض عمود من الخلاية  في الميمو   وبعد ظهور قائمة الأسماء
ابحث على اسم معين من الأسماء وذلك بنقر على روشارش دان ليست  وبعد ظهور مربع روشارش
اكتب اسم من الأسماء في مربع البحث  وشاهد النتيجة
أرجو منكم أن تعذروني  لقلت معرفتي بهذا المجال

=================================
=    Unit1.pas
=================================


الرمز:

unit Unit1; // delph.forumalgerie.net

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, // delph.forumalgerie.net
  StdCtrls, Buttons, ExtCtrls; // delph.forumalgerie.net

type
  TForm1 = class(TForm) // delph.forumalgerie.net
    Button2: TButton; // delph.forumalgerie.net
    Button3: TButton; // delph.forumalgerie.net
    OpenDialog1: TOpenDialog; // delph.forumalgerie.net
    ListBox1: TListBox; // delph.forumalgerie.net
    Button7: TButton; // delph.forumalgerie.net
    Memo1: TMemo; // delph.forumalgerie.net
    FindDialog1: TFindDialog; // delph.forumalgerie.net
    Button1: TButton; // delph.forumalgerie.net
    Edit1: TEdit; // delph.forumalgerie.net
    BitBtn1: TBitBtn; // delph.forumalgerie.net
    Label1: TLabel; // delph.forumalgerie.net
    Edit2: TEdit; // delph.forumalgerie.net
    Label2: TLabel; // delph.forumalgerie.net
    Label3: TLabel; // delph.forumalgerie.net
    Panel1: TPanel; // delph.forumalgerie.net
    ComboBox1: TComboBox; // delph.forumalgerie.net
    Button4: TButton; // delph.forumalgerie.net
    Label4: TLabel; // delph.forumalgerie.net
    Edit3: TEdit; // delph.forumalgerie.net
    Edit4: TEdit; // delph.forumalgerie.net
    Edit5: TEdit; // delph.forumalgerie.net
    Label5: TLabel; // delph.forumalgerie.net
    Label6: TLabel; // delph.forumalgerie.net
    Label7: TLabel; // delph.forumalgerie.net

    procedure Button7Click(Sender: TObject); // delph.forumalgerie.net
    procedure FormCreate(Sender: TObject); // delph.forumalgerie.net
    procedure FormCreate11(Sender: TObject); // delph.forumalgerie.net
    procedure Button3Click(Sender: TObject); // delph.forumalgerie.net
    procedure ListBox1Click(Sender: TObject); // delph.forumalgerie.net
    procedure Button2Click(Sender: TObject); // delph.forumalgerie.net
    procedure FormDestroy(Sender: TObject); // delph.forumalgerie.net
    procedure FindDialog1Find(Sender: TObject); // delph.forumalgerie.net
    procedure Button1Click(Sender: TObject); // delph.forumalgerie.net
    procedure Button4Click(Sender: TObject); // delph.forumalgerie.net
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, // delph.forumalgerie.net
      Y: Integer); // delph.forumalgerie.net
    procedure ComboBox1Exit(Sender: TObject); // delph.forumalgerie.net
  private
    { Déclarations privées }
    FSelPos: integer; // delph.forumalgerie.net

  public
    { Déclarations publiques }
  end; // delph.forumalgerie.net

const
     abc1: array[1..26] of string = ('A','B','C','D','E','F','G','H','I','J','K','L','M',
  'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); // delph.forumalgerie.net
  
var
  Form1: TForm1; // delph.forumalgerie.net
  Exc1, Exc2: OleVariant; // delph.forumalgerie.net
  NomFile: string; // delph.forumalgerie.net
  excelNomFilel1 : string; // delph.forumalgerie.net
  no1: boolean;  boo01: boolean;

implementation

uses
  ComObj, Shellapi; // delph.forumalgerie.net

{$R *.DFM} // delph.forumalgerie.net

procedure TForm1.Button7Click(Sender: TObject); // delph.forumalgerie.net
begin
 ShellExecute(handle, 'open', PChar(excelNomFilel1), // delph.forumalgerie.net
 nil, nil, SW_SHOWNORMAL); // delph.forumalgerie.net
end; // delph.forumalgerie.net

procedure TForm1.FormCreate(Sender: TObject); // delph.forumalgerie.net
begin
 no1 := false;  //ComboBox1.Items.Clear; // delph.forumalgerie.net
 boo01 := false;  // delph.forumalgerie.net
FormCreate11(Sender); // delph.forumalgerie.net
end; // delph.forumalgerie.net

////////////////
procedure TForm1.FormCreate11(Sender: TObject); // delph.forumalgerie.net
var
   f, f1: textfile; // delph.forumalgerie.net
   s: string; // delph.forumalgerie.net
   a: integer; // delph.forumalgerie.net
begin
 ComboBox1.Items.LoadFromFile('fil.ag'); // delph.forumalgerie.net
 assignfile(f1, 'Num1'); Reset(f1); Read(f1, a); closefile(f1); // delph.forumalgerie.net
 if not no1 then
   ComboBox1.Text := ComboBox1.Items.Strings[a]; // delph.forumalgerie.net
 NomFile := ExtractFilePath(Application.EXEName)+ComboBox1.Text; // delph.forumalgerie.net
 ListBox1.Items.Clear; // delph.forumalgerie.net
 assignfile(f, NomFile); // delph.forumalgerie.net
 if Not FileExists(NomFile) then ReWrite(f);
 reset(f); // delph.forumalgerie.net
 while not eof(f) do
 begin
   readln(f, s); // delph.forumalgerie.net
   if s <> '' then
      ListBox1.Items.Add(s); // delph.forumalgerie.net
 end; // delph.forumalgerie.net
 closefile(f); // delph.forumalgerie.net
end; // delph.forumalgerie.net

/////////////////
procedure TForm1.Button3Click(Sender: TObject); // delph.forumalgerie.net
begin
 OpenDialog1.Filter := 'Fichier Excel (*.xlsx)|*.xlsx|Fichier Excel (*.xls)|*.xls|Tout les fichier (*.*)|*.*'; // delph.forumalgerie.net
 OpenDialog1.Title := 'Ouvrir le fichier Excel ou selections un liste de fichiers'; // delph.forumalgerie.net
 if OpenDialog1.Execute then begin
   ListBox1.Items.Add(OpenDialog1.Files.Text); // delph.forumalgerie.net
   ListBox1.Items.SaveToFile(NomFile); // delph.forumalgerie.net
   no1 := true; // delph.forumalgerie.net
   FormCreate11(Sender); // delph.forumalgerie.net
 end; // delph.forumalgerie.net
end; // delph.forumalgerie.net

procedure TForm1.ListBox1Click(Sender: TObject); // delph.forumalgerie.net
var
  i: integer; // delph.forumalgerie.net
begin
  i := ListBox1.ItemIndex; // delph.forumalgerie.net
  excelNomFilel1 := ListBox1.Items.Strings[i]; // delph.forumalgerie.net
  ShowMessage(excelNomFilel1); // delph.forumalgerie.net
  Edit1.Text := excelNomFilel1; // delph.forumalgerie.net
  Button1.Enabled := true; // delph.forumalgerie.net
  Button2.Enabled := true; // delph.forumalgerie.net
  Button7.Enabled := true; // delph.forumalgerie.net
  boo01 := false; // delph.forumalgerie.net
end; // delph.forumalgerie.net

procedure TForm1.Button2Click(Sender: TObject); // delph.forumalgerie.net
var jColonne: integer;
    Colonne, Tracer : Integer; // delph.forumalgerie.net
    CountTracer : Integer;
begin
 Colonne := StrToInt(Edit3.Text); // delph.forumalgerie.net
 Tracer  := StrToInt(Edit4.Text); // delph.forumalgerie.net
 CountTracer := StrToInt(Edit5.Text); // delph.forumalgerie.net
 if Tracer <= 26 then begin
 if not boo01 then
 begin
   Exc1 := CreateOleObject('Excel.Application'); // delph.forumalgerie.net
   Exc1.Workbooks.Open(excelNomFilel1); // delph.forumalgerie.net
 end;
 Memo1.Lines.Clear; // delph.forumalgerie.net
 for jColonne := Colonne to CountTracer do
  Memo1.Lines.Add(Exc1.Cells[jColonne, Tracer].Text +
  '     -->     '+abc1[Tracer]+IntToStr(jColonne)); // delph.forumalgerie.net
  boo01 := true; // delph.forumalgerie.net
 end; // delph.forumalgerie.net
end; // delph.forumalgerie.net

procedure TForm1.FormDestroy(Sender: TObject); // delph.forumalgerie.net
begin
  if not VarIsEmpty(Exc1) then
  begin
    Exc1.DisplayAlerts := False; // delph.forumalgerie.net
    Exc1.Quit; // delph.forumalgerie.net
  end; // delph.forumalgerie.net
end; // delph.forumalgerie.net
 
procedure TForm1.FindDialog1Find(Sender: TObject); // delph.forumalgerie.net
var
  S : string; // delph.forumalgerie.net
  startpos : integer; // delph.forumalgerie.net
begin
  with TFindDialog(Sender) do
  begin
    if FSelPos = 0 then
      Options := Options - [frFindNext]; // delph.forumalgerie.net
    if frfindNext in Options then
    begin
      StartPos := FSelPos + Length(Findtext); // delph.forumalgerie.net
      S := Copy(Memo1.Lines.Text, StartPos, MaxInt); // delph.forumalgerie.net
    end
    else
    begin
      S := Memo1.Lines.Text; // delph.forumalgerie.net
      StartPos := 1; // delph.forumalgerie.net
    end; // delph.forumalgerie.net
    FSelPos := Pos(FindText, S);
    if FSelPos > 0 then
    begin
      FSelPos := FSelPos + StartPos - 1; // delph.forumalgerie.net
      Memo1.SelStart := FSelPos - 1; // delph.forumalgerie.net
      Memo1.SelLength := Length(FindText); // delph.forumalgerie.net
      Memo1.SetFocus; // delph.forumalgerie.net
      Edit2.Text := Memo1.SelText; // delph.forumalgerie.net
      Label2.Caption := IntToStr(StrToInt(Label2.Caption) + 1); // delph.forumalgerie.net
    end
    else
    begin
      if frfindNext in Options then
      begin
        S := Concat('Non trouve autre là "', FindText,
          '" dans Liste.'); // delph.forumalgerie.net
        Label2.Caption := '0'; // delph.forumalgerie.net
       end
      else
        S := Concat('ne trouve pas  "', FindText, '" dans Liste.'); // delph.forumalgerie.net
      MessageDlg(S, mtError, [mbOK], 0); // delph.forumalgerie.net
    end; // delph.forumalgerie.net
  end; // delph.forumalgerie.net

end; // delph.forumalgerie.net

procedure TForm1.Button1Click(Sender: TObject); // delph.forumalgerie.net
begin
  FSelPos := 0; // delph.forumalgerie.net
  FindDialog1.Execute; // delph.forumalgerie.net
  Label2.Caption := '0'; // delph.forumalgerie.net
end; // delph.forumalgerie.net

procedure TForm1.Button4Click(Sender: TObject); // delph.forumalgerie.net
begin
 if MessageDlg('Voulez vous vraiment enregistrer le fichier  :  '
 +ComboBox1.Text,mtInformation,[mbYes,mbNo],0)=mrYes then
 begin
  // NomFile := ExtractFilePath(Application.EXEName)+ComboBox1.Text; // delph.forumalgerie.net
   Edit1.Text := NomFile; // delph.forumalgerie.net
   ComboBox1.Items.Add(ComboBox1.Text); // delph.forumalgerie.net
   ComboBox1.Items.SaveToFile('fil.ag'); // delph.forumalgerie.net
 end;
 Button4.Enabled := false; // delph.forumalgerie.net
end; // delph.forumalgerie.net

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer); // delph.forumalgerie.net
var
  i: Integer; // delph.forumalgerie.net
  s: String; // delph.forumalgerie.net
  b1: boolean; // delph.forumalgerie.net
begin
 if ComboBox1.Text <> '' then begin
 b1 := false;
 s := ComboBox1.Text; // delph.forumalgerie.net
 for i := 0 to ComboBox1.Items.Count-1 do
  if s = ComboBox1.Items.Strings[i] then
   b1 := true; // delph.forumalgerie.net
  if not b1 then
  Button4.Enabled := true else Button4.Enabled := false; // delph.forumalgerie.net
 NomFile := ExtractFilePath(Application.EXEName)+s; // delph.forumalgerie.net
 if Button4.Enabled then
   Button4.SetFocus;   end; // delph.forumalgerie.net
end; // delph.forumalgerie.net

procedure TForm1.ComboBox1Exit(Sender: TObject); // delph.forumalgerie.net
var f, f1: TextFile; s, NomFil: String; // delph.forumalgerie.net
begin
 if ComboBox1.Text <> '' then
 begin
    NomFil := ExtractFilePath(Application.EXEName)+'Num1'; // delph.forumalgerie.net
    assignfile(f1, NomFil); ReWrite(f1); // delph.forumalgerie.net
    Write(f1, ComboBox1.ItemIndex); // delph.forumalgerie.net
    closefile(f1); // delph.forumalgerie.net
    ListBox1.Items.Clear; // delph.forumalgerie.net
    NomFile := ExtractFilePath(Application.EXEName)+ComboBox1.Text;
    assignfile(f, NomFile); // delph.forumalgerie.net
    if Not FileExists(NomFile) then ReWrite(f); // delph.forumalgerie.net
    reset(f); // delph.forumalgerie.net
    while not eof(f) do
   begin
     readln(f, s); // delph.forumalgerie.net
     if s <> '' then
      ListBox1.Items.Add(s); // delph.forumalgerie.net
   end; // delph.forumalgerie.net
  closefile(f); // delph.forumalgerie.net
  Label4.Enabled := true;   // delph.forumalgerie.net
 end; // delph.forumalgerie.net
end; // delph.forumalgerie.net

end. // delph.forumalgerie.net


وفي الأخير تقبلوا مني فائق الشكر والاحترام والتقدير


منتدى دلفي تعليم يرحب بكم
delph.forumalgerie.net


عدل سابقا من قبل mah11 في 23/5/2015, 2:13 pm عدل 2 مرات (السبب : تصحيح بعض المعلومات)

mah11
Admin

عدد المساهمات : 365
تاريخ التسجيل : 21/06/2013

http://delph.forumalgerie.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: كيفية قراءة سطر أو عمود من ملف اكسال بـدلفي

مُساهمة  sad13 في 8/1/2014, 8:51 pm


مشكـــــور على الموضـــــوع.................

sad13
مبرمج

عدد المساهمات : 53
تاريخ التسجيل : 04/01/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: كيفية قراءة سطر أو عمود من ملف اكسال بـدلفي

مُساهمة  sad13 في 8/1/2014, 8:52 pm

مشكـــــور على الموضـــــوع.................

sad13
مبرمج

عدد المساهمات : 53
تاريخ التسجيل : 04/01/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: كيفية قراءة سطر أو عمود من ملف اكسال بـدلفي

مُساهمة  alla في 10/1/2014, 7:48 pm


مشكور عـــــلى الموضوع شـــكـــــــــــــــــــــرا شـــكـــــــــــــــــــــرا

شـــكـــــــــــــــــــــرا

alla
مبرمج مجتهد

عدد المساهمات : 675
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: كيفية قراءة سطر أو عمود من ملف اكسال بـدلفي

مُساهمة  alla في 10/1/2014, 7:48 pm


مشكور عـــــلى الموضوع شـــكـــــــــــــــــــــرا شـــكـــــــــــــــــــــرا

شـــكـــــــــــــــــــــرا

alla
مبرمج مجتهد

عدد المساهمات : 675
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: كيفية قراءة سطر أو عمود من ملف اكسال بـدلفي

مُساهمة  mah11 في 23/5/2015, 2:10 pm

=======================
= Form1
=======================
الرمز:

object Form1: TForm1
  Left = 192
  Top = 114
  Width = 808
  Height = 581
  BorderIcons = [biSystemMenu, biMinimize]
  Caption = 'Form1 Exemple Excele'
  Color = clBtnFace
  Font.Charset = ARABIC_CHARSET
  Font.Color = clWindowText
  Font.Height = -13
  Font.Name = 'MS Sans Serif'
  Font.Style = [fsBold]
  OldCreateOrder = False
  Position = poScreenCenter
  OnCreate = FormCreate
  OnDestroy = FormDestroy
  PixelsPerInch = 96
  TextHeight = 16
  object Label1: TLabel
    Left = 344
    Top = 0
    Width = 150
    Height = 16
    Caption = 'Nom de fichier ouvrir ...'
  end
  object Label2: TLabel
    Left = 624
    Top = 56
    Width = 7
    Height = 16
    Caption = '0'
  end
  object Label3: TLabel
    Left = 352
    Top = 40
    Width = 101
    Height = 16
    Caption = 'Nom de Persont'
  end
  object Label4: TLabel
    Left = 744
    Top = 472
    Width = 13
    Height = 56
    Caption = '.'
    Enabled = False
    Font.Charset = ANSI_CHARSET
    Font.Color = clRed
    Font.Height = -48
    Font.Name = 'Arial'
    Font.Style = [fsBold]
    ParentFont = False
  end
  object Label5: TLabel
    Left = 720
    Top = 16
    Width = 53
    Height = 16
    Caption = 'Colonne'
  end
  object Label6: TLabel
    Left = 720
    Top = 40
    Width = 41
    Height = 16
    Caption = 'Tracer'
  end
  object Label7: TLabel
    Left = 720
    Top = 72
    Width = 70
    Height = 16
    Caption = 'Quantique '
  end
  object Button2: TButton
    Left = 24
    Top = 16
    Width = 145
    Height = 25
    Cursor = crHandPoint
    Caption = 'Ouvrir Excel'
    Enabled = False
    TabOrder = 0
    OnClick = Button2Click
  end
  object Button3: TButton
    Left = 32
    Top = 56
    Width = 249
    Height = 25
    Cursor = crHandPoint
    Caption = 'Charge la liste'
    TabOrder = 1
    OnClick = Button3Click
  end
  object ListBox1: TListBox
    Left = 8
    Top = 88
    Width = 337
    Height = 393
    ItemHeight = 16
    TabOrder = 2
    OnClick = ListBox1Click
  end
  object Button7: TButton
    Left = 184
    Top = 16
    Width = 105
    Height = 25
    Cursor = crHandPoint
    Caption = 'Ouvrir ...'
    Enabled = False
    TabOrder = 3
    OnClick = Button7Click
  end
  object Memo1: TMemo
    Left = 360
    Top = 112
    Width = 377
    Height = 369
    ScrollBars = ssBoth
    TabOrder = 4
  end
  object Button1: TButton
    Left = 384
    Top = 88
    Width = 241
    Height = 25
    Cursor = crHandPoint
    Caption = 'Rechercher dans Liste'
    Enabled = False
    TabOrder = 5
    OnClick = Button1Click
  end
  object Edit1: TEdit
    Left = 344
    Top = 16
    Width = 273
    Height = 24
    TabOrder = 6
  end
  object BitBtn1: TBitBtn
    Left = 24
    Top = 491
    Width = 169
    Height = 29
    Cursor = crHandPoint
    TabOrder = 7
    Kind = bkClose
  end
  object Edit2: TEdit
    Left = 344
    Top = 56
    Width = 273
    Height = 24
    TabOrder = 8
  end
  object Panel1: TPanel
    Left = 200
    Top = 489
    Width = 537
    Height = 41
    TabOrder = 9
    OnMouseMove = Panel1MouseMove
    object ComboBox1: TComboBox
      Left = 184
      Top = 9
      Width = 345
      Height = 24
      ItemHeight = 16
      TabOrder = 0
      OnExit = ComboBox1Exit
    end
    object Button4: TButton
      Left = 8
      Top = 8
      Width = 161
      Height = 25
      Caption = 'Enregistrer le fichier'
      Enabled = False
      TabOrder = 1
      OnClick = Button4Click
    end
  end
  object Edit3: TEdit
    Left = 680
    Top = 8
    Width = 33
    Height = 24
    TabOrder = 10
    Text = '4'
  end
  object Edit4: TEdit
    Left = 680
    Top = 40
    Width = 33
    Height = 24
    TabOrder = 11
    Text = '2'
  end
  object Edit5: TEdit
    Left = 680
    Top = 72
    Width = 33
    Height = 24
    TabOrder = 12
    Text = '24'
  end
  object OpenDialog1: TOpenDialog
    Filter =
     'Fichier Excel (*.xlsx)|*.xlsx|Fichier Excel (*.xls)|*.xls|Tout l' +
      'es fichier (*.*)|*.*'
    InitialDir = '.'
    Options = [ofHideReadOnly, ofAllowMultiSelect, ofEnableSizing]
    Left = 616
  end
  object FindDialog1: TFindDialog
    OnFind = FindDialog1Find
    Left = 648
  end
end

mah11
Admin

عدد المساهمات : 365
تاريخ التسجيل : 21/06/2013

http://delph.forumalgerie.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: كيفية قراءة سطر أو عمود من ملف اكسال بـدلفي

مُساهمة  sdk11 في 13/6/2015, 9:02 am

بارك الله فيك

sdk11
مبرمج مجتهد

عدد المساهمات : 109
تاريخ التسجيل : 19/09/2014

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى