![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как экспортировать содержимое DBGrid в Excel [D7]
evgen © (2004-05-17 14:03:00)Помогите советом или толковой ссылкой для начинающих!
Vlad (2004-05-22 14:54:00) [21]
> iVovs (22.05.04 14:10) [17]
простите, ошибочка закралась,
...
with TMyDBGrid(DBGrid1).DataLink do
begin
for a:=0 to (RecordCount-1) do
begin
ActiveRecord:=a;// я забыл дописать эту строчку
for b:=0 to (FieldCount-1) do
begin
...
> jack128 © (22.05.04 14:28) [18]
> with DbGrid1.DataSource.DataSet do
Ты почитай вопрос автора. Нужен экспорт из DBGrid, а не из DataSet, согласно постановке вопроса твой ответ впринципе неверен
iVovs (2004-05-22 14:37:00) [22]Так как всё таки без траблов загрузить из Grid в Excel?
jack128 (2004-05-22 14:28:00) [23]with DbGrid1.DataSource.DataSet do
begin
Last;
First;
end;
> for a:=0 to (RecordCount-1) do
> begin
> for b:=0 to (FieldCount-1) do
> begin
> WS.Cells[a+1, b+1].Value:=Fields[b].AsString;
> end;
DbGrid1.DataSource.DataSet.Next;
> end;
>
подчеркнутая строка - верный путь к тормозам, как надо см линк выше..
> Попробовал предложеный код, но он выводит только одну запись(на
> которой находится курсор) из Grid столько раз, сколько видимых
> рядов в Grid
см мои добавления к коду..
iVovs (2004-05-22 14:10:00) [24]Такая же проблема как и у evgen нужно экспортировать данные из Grida Excel.
Попробовал предложеный код, но он выводит только одну запись(на которой находится курсор) из Grid столько раз, сколько видимых рядов в Grid.
Может кому не лень - помогите разобраться.
evgen (2004-05-17 15:49:00) [25]> Vlad
Пока чето не получилось. Позже продолжим! Спасибо!
Vlad (2004-05-17 15:37:00) [26]
> evgen (17.05.04 15:36) [14]
> Да вроде так и делаю!
> implementation
>
> {$R *.dfm}
>
> procedure ToExcel;
procedure TForm1.ToExcel
evgen (2004-05-17 15:36:00) [27]Да вроде так и делаю!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables, ComObj;
type
TMyDBGrid = class(TDBGrid);
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure ToExcel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure ToExcel;
var
a,b: Integer;
ExApp, WB, WS: Variant;
begin
ExApp:=CreateOleObject('Excel.Application');
WB:=ExApp.WorkBooks.Add;
WS := ExApp.Workbooks[1].WorkSheets[1];
with TMyDBGrid(DBGrid1).DataLink do
begin
for a:=0 to (RecordCount-1) do
begin
for b:=0 to (FieldCount-1) do
begin
WS.Cells[a+1, b+1].Value:=Fields[b].AsString;
end;
end;
ExApp.Visible:=true;
end;
end;
end.
Vlad (2004-05-17 15:28:00) [28]
type
TMyDBGrid = class(TDBGrid);
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure ToExcel;
private
{ Private declarations }
public
{ Public declarations }
end;
.............
implementation
procedure TForm1.ToExcel;
{Сюда пишем процедуру из 5 поста}
evgen (2004-05-17 15:23:00) [29]type
TMyDBGrid = class(TDBGrid);
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
private
{ Private declarations }
public
{ Public declarations }
end;
Vlad (2004-05-17 15:14:00) [30]
> evgen (17.05.04 15:10) [10]
> А это что?
А это значит ты в разделе type не объявил тип
TMyDBGrid = class(TDBGrid);
Читай внимательнее [5] пост
evgen (2004-05-17 15:10:00) [31]А это что?
В строке:
with TMyDBGrid(DBGrid1).DataLink do
ошибка:
[Error] Unit1.pas(36): Undeclared identifier: 'TMyDBGrid'
Vlad (2004-05-17 14:55:00) [32]
> evgen (17.05.04 14:53) [8]
Извини, брат, совсем забыл (горе мне)
uses ComObj
:-)
evgen (2004-05-17 14:53:00) [33]Дает ошибку, похоже чегото не хватает на форме:
[Error] Unit1.pas(32): Undeclared identifier: 'CreateOleObject'
в строке:
ExApp:=CreateOleObject('Excel.Application');
evgen (2004-05-17 14:42:00) [34]Спасибо. Сейчас посмотрю!
Соловьев (2004-05-17 14:32:00) [35]сколько у.е.?
Vlad (2004-05-17 14:32:00) [36]
> evgen (17.05.04 14:03)
Вот, не поленился специально для тебя написал примерный код:
type
TMyDBGrid = class(TDBGrid);
.....
procedure ToExcel;
var
a,b: Integer;
ExApp, WB, WS: Variant;
begin
ExApp:=CreateOleObject('Excel.Application');
WB:=ExApp.WorkBooks.Add;
WS := ExApp.Workbooks[1].WorkSheets[1];
with TMyDBGrid(DBGrid1).DataLink do
begin
for a:=0 to (RecordCount-1) do
begin
for b:=0 to (FieldCount-1) do
begin
WS.Cells[a+1, b+1].Value:=Fields[b].AsString;
end;
end;
ExApp.Visible:=true;
end;
end;
Здесь содержимое DBGridвыгружается на лист Excel
Но это ли тебе надо ?
evgen (2004-05-17 14:29:00) [37]Нужен исходник который выполняет экспорт содержимое из DBgrid в Excel
Соловьев (2004-05-17 14:24:00) [38][1]
evgen (2004-05-17 14:22:00) [39]Есть исходник по вопросу?
Соловьев (2004-05-17 14:07:00) [40]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=502
http://www.ehlib.com