![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
из StringGrid в файл Excel?
ymin © (2002-04-15 14:48:00)Как организовать передачу данных из StringGrid в файл Excel?
agrig (2002-04-15 20:08:00) [1]Привет коллега!
Как я понимаю, тебе через ClipBoard.
Как-то писалась такая вещь. у меня для таблицы БД, но я думаю, ты разберешь:)
процедурка загружает, ты открываешь Excel им копируешь!
//======================================================================================
//========КОПИРОВАНИЕ В CLIPBOARD=================
procedure TDataModule1.CopyTableToClipboard(DataSet: TDataSet; aFieldNames, aExcelCaptions: TStrings);
var x : Word;
HeaderRow : string;
Clip : TClipboard;
TempStr : TStrings;
TableRow : string;
begin
if Assigned(DataSet) = False then Exit;
if DataSet.Fields.Count = 0 then begin
raise Exception.Create(NO_FIELDS_IN_DATASET);
end; // END IF
TempStr := TStringList.Create;
Clip := TClipboard.Create;
HeaderRow := "";
try
//заголовки
DataSet.First;
for x := 0 to aExcelCaptions.Count - 1 do begin
HeaderRow := HeaderRow + aExcelCaptions.Strings[x] + #9;
end; // END FOR
if HeaderRow[Length(HeaderRow)] = #9 then
HeaderRow[Length(HeaderRow)] := " ";
HeaderRow := TrimRight(HeaderRow);
TempStr.Append(HeaderRow);
//данные
while not DataSet.EOF do begin
for x := 0 to aFieldNames.Count - 1 do begin
TableRow := TableRow + fieldToStr(DataSet.FieldByName(aFieldNames.Strings[x])) + #9;
end; // END FOR
if TableRow[Length(TableRow)] = #9 then
TableRow[Length(TableRow)] := " ";
TableRow := TrimRight(TableRow);
TempStr.Append(TableRow);
TableRow := "";
DataSet.Next;
end; // END WHILE
Clip.AsText := TempStr.Text;
finally
TempStr.Free;
Clip.Free;
end; // END TRY FINALLY
end;
AFROLOV (2002-04-15 17:17:00) [2]http://www.afalinasoft.com/rus/tips/index.html
Леха_ (2002-04-15 15:50:00) [3]Иди на королевство там на эту тему есть прекрасные статьи
ymin (2002-04-15 15:03:00) [4]Поискал, но ничего не понял :(
Song (2002-04-15 14:49:00) [5]А поискать?