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

نام تاپیک: ارسال خروجی به excel

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    اصفهان
    پست
    105

    Smile ارسال خروجی به excel

    با سلام
    یونیت زیر شامل چند تابع است که با استفاده از آن می شه خورجی adoquary- adotableو یا یک dbgrid را به نرم افزار excel فرستاد امیدوارم که بتونید ازش استفاده کنید .


    unit Unit_report;

    interface

    uses SysUtils,QuickRpt, Classes,QRCtrls,forms,CheckLst,StdCtrls,mask,print ers,ADODB, DB,Variants,DBGrids,Grids;

    type

    procedure SendqueryToExcel(temp_quary:TADOQuery;temp_form:TF orm);
    procedure senddbgridtoexcel(temp_dbgrid:TDBGrid;temp_quary:T ADOQuery;temp_form:TForm);
    procedure senddbgridtoexcel_table(temp_dbgrid:TDBGrid;temp_t able:TADOTable;temp_form:TForm);
    procedure sendstringgridtoexcel(temp_stringgrid:TStringGrid; temp_form:TForm);

    implementation

    uses u_DataModule1, Controls,ActiveX, Excel2000; // or Excel97


    //******************************
    //******************************
    //******************************
    //******************************
    procedure SendqueryToExcel(temp_quary:TADOQuery;temp_form:TF orm);
    var
    PreviewToExcel: TExcelApplication;
    RangeE: ExcelRange;
    I, Row: Integer;
    harf:char;
    s:string;
    begin
    PreviewToExcel := TExcelApplication.Create(temp_form);
    PreviewToExcel.Connect;
    PreviewToExcel.Workbooks.Add(NULL, 0);
    RangeE := PreviewToExcel.ActiveCell;
    I:=0;
    while (i<temp_quary.FieldCount) do
    begin
    RangeE.Value:= temp_quary.Fields.Fields[i].FieldName;
    RangeE:=RangeE.Next;
    i:=i+1;
    end;
    Row := 2;
    temp_quary.First;
    while not temp_quary.EOF do
    begin
    RangeE := PreviewToExcel.ActiveCell;
    harf:='A';
    i:=0;
    while (i<temp_quary.FieldCount) do
    begin
    RangeE := PreviewToExcel.Range[chr(i+ord(harf)) + IntToStr(Row), chr(i+ord(harf)) + IntToStr(Row)];
    RangeE.Value:= temp_quary.FieldByName(temp_quary.Fields.Fields[i].FieldName).AsString;
    RangeE:=RangeE.Next;
    i:=i+1;
    end;
    temp_quary.Next;
    inc(Row);
    end;
    RangeE := PreviewToExcel.Range['A1', chr(64 + temp_quary.FieldCount) + IntToStr(temp_quary.RecordCount + 1)];
    RangeE.AutoFormat(8, NULL, NULL, NULL, NULL, NULL, NULL);
    PreviewToExcel.Visible[0] := True;
    PreviewToExcel.Disconnect;
    end;
    //******************************
    procedure senddbgridtoexcel(temp_dbgrid:TDBGrid;temp_quary:T ADOQuery;temp_form:TForm);
    var
    PreviewToExcel: TExcelApplication;
    RangeE: ExcelRange;
    I, Row: Integer;
    harf:char;
    s:string;
    begin
    PreviewToExcel := TExcelApplication.Create(temp_form);
    PreviewToExcel.Connect;
    PreviewToExcel.Workbooks.Add(NULL, 0);
    RangeE := PreviewToExcel.ActiveCell;
    I:=0;
    while (i<temp_dbgrid.FieldCount) do
    begin
    RangeE.Value:= temp_dbgrid.Columns.Items[i].Title.Caption;
    RangeE:=RangeE.Next;
    i:=i+1;
    end;
    Row := 2;
    temp_quary.First;
    while not temp_quary.EOF do
    begin
    RangeE := PreviewToExcel.ActiveCell;
    harf:='A';
    i:=0;
    while (i<temp_dbgrid.FieldCount) do
    begin
    RangeE := PreviewToExcel.Range[chr(i+ord(harf)) + IntToStr(Row), chr(i+ord(harf)) + IntToStr(Row)];
    RangeE.Value:= temp_quary.Fieldbyname(temp_dbgrid.Fields[i].FieldName).AsString;
    RangeE:=RangeE.Next;
    i:=i+1;
    end;
    temp_quary.Next;
    inc(Row);
    end;
    RangeE := PreviewToExcel.Range['A1', chr(64 + temp_dbgrid.FieldCount) + IntToStr(temp_quary.RecordCount + 1)];
    RangeE.AutoFormat(8, NULL, NULL, NULL, NULL, NULL, NULL);
    PreviewToExcel.Visible[0] := True;
    PreviewToExcel.Disconnect;
    end;
    //******************************
    procedure senddbgridtoexcel_table(temp_dbgrid:TDBGrid;temp_t able:TADOTable;temp_form:TForm);
    var
    PreviewToExcel: TExcelApplication;
    RangeE: ExcelRange;
    I, Row: Integer;
    harf:char;
    s:string;
    begin
    PreviewToExcel := TExcelApplication.Create(temp_form);
    PreviewToExcel.Connect;
    PreviewToExcel.Workbooks.Add(NULL, 0);
    RangeE := PreviewToExcel.ActiveCell;
    I:=0;
    while (i<temp_dbgrid.FieldCount) do
    begin
    RangeE.Value:= temp_dbgrid.Columns.Items[i].Title.Caption;
    RangeE:=RangeE.Next;
    i:=i+1;
    end;
    Row := 2;
    temp_table.First;
    while not temp_table.EOF do
    begin
    RangeE := PreviewToExcel.ActiveCell;
    harf:='A';
    i:=0;
    while (i<temp_dbgrid.FieldCount) do
    begin
    RangeE := PreviewToExcel.Range[chr(i+ord(harf)) + IntToStr(Row), chr(i+ord(harf)) + IntToStr(Row)];
    RangeE.Value:= temp_table.Fieldbyname(temp_dbgrid.Fields[i].FieldName).AsString;
    RangeE:=RangeE.Next;
    i:=i+1;
    end;
    temp_table.Next;
    inc(Row);
    end;
    RangeE := PreviewToExcel.Range['A1', chr(64 + temp_dbgrid.FieldCount) + IntToStr(temp_table.RecordCount + 1)];
    RangeE.AutoFormat(8, NULL, NULL, NULL, NULL, NULL, NULL);
    PreviewToExcel.Visible[0] := True;
    PreviewToExcel.Disconnect;
    end;
    //************************************************** *********************************
    procedure sendstringgridtoexcel(temp_stringgrid:TStringGrid; temp_form:TForm);
    var
    PreviewToExcel: TExcelApplication;
    RangeE: ExcelRange;
    I, Row: Integer;
    harf:char;
    begin
    PreviewToExcel := TExcelApplication.Create(temp_form);
    PreviewToExcel.Connect;
    PreviewToExcel.Workbooks.Add(NULL, 0);
    RangeE := PreviewToExcel.ActiveCell;
    Row := 0;
    while row <temp_stringgrid.RowCount do
    begin
    RangeE := PreviewToExcel.ActiveCell;
    harf:='A';
    i:=0;
    while (i<temp_stringgrid.ColCount) do
    begin
    RangeE := PreviewToExcel.Range[chr(i+ord(harf)) + IntToStr(Row+1), chr(i+ord(harf)) + IntToStr(Row+1)];
    RangeE.Value:=temp_stringgrid.Cells[i,row];
    RangeE:=RangeE.Next;
    i:=i+1;
    end;
    inc(Row);
    end;
    RangeE := PreviewToExcel.Range['A1', chr(64 + temp_stringgrid.ColCount) + IntToStr(temp_stringgrid.RowCount)];
    RangeE.AutoFormat(8, NULL, NULL, NULL, NULL, NULL, NULL);
    PreviewToExcel.Visible[0] := True;
    PreviewToExcel.Disconnect;
    end;

    end.

    آخرین ویرایش به وسیله ali512 : دوشنبه 01 اسفند 1384 در 11:42 صبح

  2. #2
    سلام
    متشکر

  3. #3
    کاربر جدید
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    تهران
    پست
    21
    سلام
    ممنون از این یونیت . اما یه موردی هست وقتی این فایل رو توی اکسل درست میکنه ایا همون لحظه نمایش میده ؟یا اینکه تو یه ادرس مشخص میشینه و بعدا می تونی بازش کنی ؟
    من این برنامه رو اجرا میکنم اما متاسفانه نه همون لحظه فرم مورد نظر رو نمایش میده نه اینکه یه ادرس مشخص داره ؟
    اما اگر من برم و یه فایل اکسلی که قبلا درست شده رو باز کنم اطلاعاتی برنامه مورد نظرم رو میتونم ببینم .
    اگه میشه منو راهنمایی کنید .
    ممنون

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

  1. خواندن رکوردهای فایل excel
    نوشته شده توسط mahboob در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 10
    آخرین پست: یک شنبه 15 دی 1387, 15:37 عصر
  2. excel
    نوشته شده توسط shahzamanian در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 23 بهمن 1386, 12:27 عصر
  3. باز کردن و ثبت اطلاعات در EXCEL
    نوشته شده توسط vb study در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 09 مرداد 1385, 10:43 صبح
  4. ویرایش فایل excel در دلفی
    نوشته شده توسط fata263 در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: سه شنبه 09 خرداد 1385, 09:58 صبح
  5. نمایش excel در دیتا گرید
    نوشته شده توسط gole_maryam در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 29 آبان 1384, 23:00 عصر

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

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