نقل البيانات من dbgrid إلى Excel
#22
يمكن إستخدام الدالة التالية للتحويل إلى إكسيل مباشرة من ال DBGrid  طبعاً التحويل يكون بصيغة Csv .

كود :
procedure ExportToCSV(const aGrid : TDBGrid; const FileName : String); Var   I, J : Integer;   SavePlace : TBookmark;   Table : TStrings;   HeadTable : String;   LineTable : String;   First : Boolean; Begin   HeadTable := '';   LineTable := '';   Table := TStringList.Create;   First := True;   Try     For I := 0 To Pred(aGrid.Columns.Count) Do       If aGrid.Columns[I].Visible Then         If First Then         Begin           HeadTable := HeadTable + aGrid.Columns[i].Title.Caption + ',';           First := False;         End         Else         begin           HeadTable := HeadTable + aGrid.Columns[i].Title.Caption + ',';         end;     Delete(HeadTable, Length(HeadTable), 1);     Table.Add(HeadTable);     First := True;     // with selection of rows     If aGrid.SelectedRows.Count > 0 Then     Begin       For i := 0 To aGrid.SelectedRows.Count - 1 Do       Begin         aGrid.DataSource.Dataset.GotoBookmark(pointer(aGrid.SelectedRows.Items[i]));         For j := 0 To aGrid.Columns.Count - 1 Do           If aGrid.Columns[J].Visible Then             If First Then             Begin               lineTable := lineTable + aGrid.Fields[J].AsString;               First := False;             End             Else               lineTable := lineTable + ',' + aGrid.Fields[J].AsString;         Delete(LineTable, Length(LineTable), 1);  // Remove the superfluous trailing comma         Table.Add(LineTable);         LineTable := '';         First := True;       End;     End     Else       //no selection     Begin       SavePlace := aGrid.DataSource.Dataset.GetBookmark;       aGrid.DataSource.Dataset.First;       Try         While Not aGrid.DataSource.Dataset.Eof Do         Begin           For I := 0 To aGrid.Columns.Count - 1 Do             If aGrid.Columns[I].Visible Then               If First Then               Begin                 lineTable := lineTable + aGrid.Fields[I].AsString;                 First := False;               End               Else                 lineTable := lineTable + ',' + aGrid.Fields[I].AsString;           Delete(LineTable, Length(LineTable), 1);  // Remove the superfluous trailing comma           Table.Add(LineTable);           LineTable := '';           aGrid.DataSource.Dataset.Next;           First := True;         End;         aGrid.DataSource.Dataset.GotoBookmark(SavePlace);       Finally         aGrid.DataSource.Dataset.FreeBookmark(SavePlace);       End;     End;     Table.SaveToFile(FileName,Tencoding.UTF8);   Finally     Table.Free;   End;         end;
الرد


الردود في هذا الموضوع
نقل البيانات من dbgrid إلى Excel - بواسطة merouane - 11-04-2008, 10:30 PM
نقل البيانات من dbgrid إلى Excel - بواسطة سوالف - 12-04-2008, 11:31 PM
نقل البيانات من dbgrid إلى Excel - بواسطة merouane - 13-04-2008, 02:12 AM
نقل البيانات من dbgrid إلى Excel - بواسطة kachwahed - 01-03-2011, 05:41 PM
نقل البيانات من dbgrid إلى Excel - بواسطة kachwahed - 02-03-2011, 04:08 PM
نقل البيانات من dbgrid إلى Excel - بواسطة mourad123 - 04-03-2011, 09:12 AM
نقل البيانات من dbgrid إلى Excel - بواسطة mourad123 - 04-03-2011, 09:47 AM
نقل البيانات من dbgrid إلى Excel - بواسطة garrab - 19-11-2011, 10:50 AM
نقل البيانات من dbgrid إلى Excel - بواسطة suhil76 - 29-06-2012, 01:39 PM
نقل البيانات من dbgrid إلى Excel - بواسطة tadjou - 07-07-2012, 12:30 AM
نقل البيانات من dbgrid إلى Excel - بواسطة tadjou - 07-07-2012, 12:33 AM
نقل البيانات من dbgrid إلى Excel - بواسطة fethi ts - 19-05-2015, 04:33 PM
RE: نقل البيانات من dbgrid إلى Excel - بواسطة issamdnn - 07-09-2022, 11:02 AM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم