نمایش نتایج 1 تا 4 از 4

نام تاپیک: خواندن رکوردهای خاص از اکسل

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    ایران
    پست
    43

    خواندن رکوردهای خاص از اکسل

    با سلام
    من یک فایل اکسل دارم که باید با دلفی فراخوانی اش کنم و اطلاعاتش رو در یک گرید نشون بدم . البته اینکار رو با ADO انجام میدم و ارتباط دارم . اما مشکلی که هست اینه که من از رکورد یا همون ردیف n ام به بعد اطلاعات در یکی از شیت های اکسل رو میخوام ولی موقع فراخوانی یک شیت ، کل شیت رو میاره. حالا میخواستم بپرستم چطور میتونم این کار رو انجامش بدم
    با تشکر

  2. #2

    Lightbulb نقل قول: خواندن رکوردهای خاص از اکسل


    uses
    ComObj;


    function Xls_To_StringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;
    const
    xlCellTypeLastCell = $0000000B;
    var
    XLApp, Sheet: OLEVariant;
    RangeMatrix: Variant;
    x, y, k, r: Integer;
    begin
    Result := False;
    // Create Excel-OLE Object
    XLApp := CreateOleObject('Excel.Application');
    try
    // Hide Excel
    XLApp.Visible := False;


    // Open the Workbook
    XLApp.Workbooks.Open(AXLSFile);


    // Sheet := XLApp.Workbooks[1].WorkSheets[1];
    Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];


    // In order to know the dimension of the WorkSheet, i.e the number of rows
    // and the number of columns, we activate the last non-empty cell of it


    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
    // Get the value of the last row
    x := XLApp.ActiveCell.Row;
    // Get the value of the last column
    y := XLApp.ActiveCell.Column;


    // Set Stringgrid's row &col dimensions.


    AGrid.RowCount := x;
    AGrid.ColCount := y;


    // Assign the Variant associated with the WorkSheet to the Delphi Variant


    RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
    // Define the loop for filling in the TStringGrid
    k := 1;
    repeat
    for r := 1 to y do
    AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R];
    Inc(k, 1);
    AGrid.RowCount := k + 1;
    until k > x;
    // Unassign the Delphi Variant Matrix
    RangeMatrix := Unassigned;


    finally
    // Quit Excel
    if not VarIsEmpty(XLApp) then
    begin
    // XLApp.DisplayAlerts := False;
    XLApp.Quit;
    XLAPP := Unassigned;
    Sheet := Unassigned;
    Result := True;
    end;
    end;
    end;




    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if Xls_To_StringGrid(StringGrid1, 'C:\Table1.xls') then
    end;

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    ایران
    پست
    43

    نقل قول: خواندن رکوردهای خاص از اکسل

    سلام دوست عزیز
    ممنون از راهنمایی تون .
    یه سئوال دیگه ای دارم و اینه که میشه کاری کنیم که اون چند تا سطر توی اکسل رو که میخواییم حذف کنیم بعد ذخیره اش کنیم.چون باید دوباره اون اطلاعات رو فراخوانیشون کنم و تو بانک ذخیره کنم؟؟؟

  4. #4

    نقل قول: خواندن رکوردهای خاص از اکسل

    کامپوننت های Ems Advance Import بهترین گزینه برای این کار هستن

تاپیک های مشابه

  1. خواندن رکوردهای فایل excel
    نوشته شده توسط mahboob در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 10
    آخرین پست: یک شنبه 15 دی 1387, 15:37 عصر
  2. خواندن اطلاعات یک فایل اکسل
    نوشته شده توسط tnoohi در بخش VB.NET
    پاسخ: 1
    آخرین پست: سه شنبه 22 اسفند 1385, 16:36 عصر
  3. پاسخ: 14
    آخرین پست: چهارشنبه 22 آذر 1385, 10:45 صبح
  4. بازیابی رکوردهای خاص از یک جدول
    نوشته شده توسط eilia_43 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 7
    آخرین پست: جمعه 04 آذر 1384, 14:16 عصر
  5. موضوع مهم:استخراج رکوردهای خاص از fast report
    نوشته شده توسط reza_moridi در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: جمعه 21 فروردین 1383, 09:54 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •