PDA

View Full Version : سوال: ذخیره اطلاعات گرید در فایل اکسل



طبیب دل
دوشنبه 17 شهریور 1393, 19:20 عصر
با سلام به دوستان
چطور میتونم اطلاعات گرید رو در فایل اکسل ذخیره کنم؟ و البته مسیر ذخیره فایل رو خودم هنگام ارسال اطلاعات به اکسل با استفاده از savefileDialog مشخص کنم.

لطفا سریع و کامل جواب بدین خیلی نیاز دارم . هر چی سرچ میکنم به نتیجه نمی رسم
با تشکر...

BORHAN TEC
سه شنبه 18 شهریور 1393, 09:23 صبح
با سلام،
راحت ترین راه استفاده از کامپوننتهای TJvDBGridExcelExport یا TJvDBGridExcelExport از سری کامپوننتهای JVCL است. اولین کامپوننت از DBGrid خروجی Excel میده و دومی از یک DataSet. توجه داشته باشید که کامپوننت اول با برخی از گریدهای دیگه مثل EhLib DB Grid سازگاری نداره.
موفق باشید...

online_com
سه شنبه 25 شهریور 1393, 11:09 صبح
سلام
مي توني از كد زير استفاده كني البته قسمت ذخيره فايل رو خودت به صورت دستي به تابع اضافه كن


procedure ExporttoExl(TheDataset:TDataSet;SheetExcelName:Str ing);
var
XApp:Variant;
sheet:Variant;
r,c:Integer;
q:Integer;
row,col:Integer;
fildName:Integer;

begin
try

begin
XApp:=CreateOleObject('Excel.Application');
XApp.Visible:=true;
end;
except
showmessage('Unable to link with MS Excel, it seems as it is not installed on this system.');
exit;
end;
XApp.WorkBooks.Add(-4167); //open a new blank workbook
XApp.WorkBooks[1].WorkSheets[1].Name:='Sheet1';
//give any name required to ExcelSheet
sheet:=XApp.WorkBooks[1].WorkSheets['Sheet1'];
for fildName:=0 to TheDataset.FieldCount-1 do
//TheDataset refer to the any dataset holding data
begin
q:=fildName+1;
sheet.Cells[1,q]:=TheDataset.Fields[fildName].FieldName; // enter the column headings
end;

//now supply the data from table to excel sheet
TheDataset.First;
for r:=0 to TheDataset.RecordCount-1 do
begin
for c:=0 to TheDataset.FieldCount-1 do
begin
row:=r+2;
col:=c+1;
sheet.Cells[row,col]:=TheDataset.Fields.AsString;
end;
TheDataset.Next;
end;

//set font attributes of required range if required
XApp.WorkSheets['Sheet1'].Range['A1:AA1'].Font.Bold:=True;
XApp.WorkSheets['Sheet1'].Range['A1:AA1'].Font.Color := clblue;
XApp.WorkSheets['Sheet1'].Range['A1:AA1'].Font.Color := clblue;
XApp.WorkSheets['Sheet1'].Range['A1:K1'].Borders.LineStyle :=13;

// set other attributes as below
XApp.WorkSheets['Sheet1'].Range['A1:K11'].HorizontalAlignment := 3;
// .Borders.LineStyle :=13;
XApp.WorkSheets['Sheet1'].Columns[1].ColumnWidth:=10;
XApp.WorkSheets['Sheet1'].Columns[2].ColumnWidth:=10;
XApp.WorkSheets['Sheet1'].Columns[3].ColumnWidth:=15;
XApp.WorkSheets['Sheet1'].Columns[4].ColumnWidth:=6;
XApp.WorkSheets['Sheet1'].Columns[5].ColumnWidth:=18;
XApp.WorkSheets['Sheet1'].Columns[6].ColumnWidth:=9;
XApp.WorkSheets['Sheet1'].Columns[7].ColumnWidth:=23;
XApp.WorkSheets['Sheet1'].Columns[8].ColumnWidth:=23;
XApp.WorkSheets['Sheet1'].Columns[9].ColumnWidth:=23;
XApp.WorkSheets['Sheet1'].Columns[10].ColumnWidth:=10;
xapp.caption := 'Exported from Demo programmed by SK Arora,the digitiger';
XApp.WorkSheets['Sheet1'].name := 'Exported from ' + SheetExcelName;
//assuming dataset is TTable based its tablename can be given as title of worksheet
//close;
end;

به عنوان مثال

procedure TForm1.Button1Click(Sender: TObject);
begin
ExporttoExl(ClientDataSet1,'Sheet1');
close;
end;

MohsenB
سه شنبه 08 مهر 1393, 14:49 عصر
با سلام

یک نوع فایل جدول هست که اکسل از اون پشتیبانی میکنه که پسوندش csv . ذخیره کردن با این پسوند خیلی سادس ، کافیه توی یه فایل متنی هر سطر رو توی یک خط بنویسید و بین هر سلول یک نقطه-ویرگول قرار بدید . فقط اگر یک سلول متنش شامل نقطه ویرگول باشه دوروبر متن اون سلول دبل کوتیشن اضافه کنید .
مثال : اگر جدول زیر رو داشته باشیم :


a
b 1
c


d
e,g;s
f



محتوای فایل اینجوریه :

a;b 1;c
d;"e,g;s";f

موفق باشید