PDA

View Full Version : export and import records beetwin delphi and excel



tvg77
چهارشنبه 25 شهریور 1383, 21:24 عصر
delphi6
database:paradox7
لطفا در زمینه گرفتن و فرستادن اطلاعات از دلفی به اکسل راهنمایی کنیید
خیلی ضروریه
ممنون

DataMaster
پنج شنبه 26 شهریور 1383, 07:32 صبح
از کامپوننتهای SME استفاده کن

tvg77
پنج شنبه 26 شهریور 1383, 11:14 صبح
اگه میشه بیشتر راهنمایی کنید
ممنون

DataMaster
جمعه 27 شهریور 1383, 06:38 صبح
اگه کامپوننتهاش رو نصب کنی Sample داره که خیلی راحت میتونی کارت رو راه بندازی

tvg77
یک شنبه 29 شهریور 1383, 17:52 عصر
جناب datamaster از راهنمایی شما متشکرم
کارمو راه انداختی
بازم ممنون

javidtaheri
دوشنبه 30 شهریور 1383, 13:39 عصر
این ابزار رایگان است یا خیر
از کجا دانلود کنم؟ متشکرم

_alish_
دوشنبه 30 شهریور 1383, 15:36 عصر
با تشکر از نویسنده آن Jode Qa


uses DB;

{....}

private
procedure SendToExcel(aDataSet: TDataSet);

{....}


uses
ComObj, ActiveX, Excel2000; // or Excel97

procedure TForm1.SendToExcel(aDataSet: TDataSet);
var
PreviewToExcel: TExcelApplication;
RangeE: Excel2000.Range; //or RangeE: Excel97.Range
I, Row: Integer;
Bookmark: TBookmarkStr;
begin
PreviewToExcel := TExcelApplication.Create(Self);
PreviewToExcel.Connect;
PreviewToExcel.Workbooks.Add(NULL, 0);
RangeE := PreviewToExcel.ActiveCell;

for I := 0 to aDataSet.Fields.Count - 1 do
begin
RangeE.Value := aDataSet.Fields[I].DisplayLabel;
RangeE := RangeE.Next;
end;

aDataSet.DisableControls;
try
Bookmark := aDataSet.Bookmark;
try
aDataSet.First;
Row := 2;
while not aDataSet.EOF do
begin
//Write down Record As Row in msExcel
RangeE := PreviewToExcel.Range['A' + IntToStr(Row), 'A' + IntToStr(Row)];
for I := 0 to aDataSet.Fields.Count - 1 do
begin
RangeE.Value := aDataSet.Fields[I].AsString;
RangeE := RangeE.Next;
end;
aDataSet.Next;
Inc(Row);
end;
finally
aDataSet.Bookmark := Bookmark;
end;
finally
aDataSet.EnableControls;
end;

//Creating Preview from Range A1..ColumnX
//Calculating ASCII 64 (Character Before "A") With Dataset FieldsCount
//This Method can only handle range A1..Z?, if want to be excel column type
//support, exp "AA"/"IV"
RangeE := PreviewToExcel.Range['A1', chr(64 + aDataSet.Fields.Count) + IntToStr(Row - 1)];

RangeE.AutoFormat(8, NULL, NULL, NULL, NULL, NULL, NULL);
PreviewToExcel.Visible[0] := True;
PreviewToExcel.Disconnect;
end;


// Beispiel:
// Example:
procedure TForm1.Button1Click(Sender: TObject);
begin
SendToExcel(Table1);
end;

javidtaheri
دوشنبه 30 شهریور 1383, 18:44 عصر
alish
لطفا در مورد کد نوشته شده بیشتر توضیح بده :!:

DataMaster
سه شنبه 31 شهریور 1383, 07:22 صبح
اگه آدرس منبع رو هم ذکر کنید ممنون میشم

tvg77
پنج شنبه 02 مهر 1383, 20:51 عصر
http://www.scalabium.com/download/sme/sme_d34567.zip