//一个存为txt的例子 procedure TForm1.Button1Click(Sender: TObject); begin DBGridToTxt(DBGrid1); //触发转换过程 end;procedure TForm1.DBGridToTxt(Source: TObject);//自定义函数,转换过程,参数为数据源 var Filename: TextFile; //将数据输入的目标文件 DataSet: TDataSet; //数据来源 TitleStr,ValueStr,TempStr: String; //一些参数 Counter: Integer; //计数器 begin if (Source is TDBGrid)then DataSet:=TDBGrid(Source).DataSource.DataSet else DataSet:=TDataSet(Source); if ((Dataset.IsEmpty) or (not Dataset.Active))then Exit else begin Dataset.DisableControls; Dataset.First; //转到第一条记录 if Savedialog1.Execute then //打开存盘文件对话框 begin AssignFile(FileName,SaveDialog1.FileName);//指定文件名 Rewrite(FileName); //建立并打开一新的文件 TitleStr:=''; for Counter:=0 to Dataset.FieldCount-1 do //输出各字段标示值 TitleStr:=TitleStr+Char(9)+DataSet.Fields[Counter].DisplayLabel; TitleStr:=Trim(TitleStr); Writeln(FileName,TitleStr); while not Dataset.Eof do begin Valuestr:=''; for Counter:=0 to DataSet.FieldCount-1 do begin TempStr:=DataSet.Fields[Counter].AsString; ValueStr:=ValueStr+Char(9)+TempStr; end; ValueStr:=Trim(ValueStr); Writeln(FileName,ValueStr); DataSet.Next; end; CloseFile(FileName); end; Dataset.EnableControls; end; end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DBGridToTxt(DBGrid1); //触发转换过程
end;procedure TForm1.DBGridToTxt(Source: TObject);//自定义函数,转换过程,参数为数据源
var
Filename: TextFile; //将数据输入的目标文件
DataSet: TDataSet; //数据来源
TitleStr,ValueStr,TempStr: String; //一些参数
Counter: Integer; //计数器
begin
if (Source is TDBGrid)then
DataSet:=TDBGrid(Source).DataSource.DataSet
else
DataSet:=TDataSet(Source);
if ((Dataset.IsEmpty) or (not Dataset.Active))then
Exit
else
begin
Dataset.DisableControls;
Dataset.First; //转到第一条记录
if Savedialog1.Execute then //打开存盘文件对话框
begin
AssignFile(FileName,SaveDialog1.FileName);//指定文件名
Rewrite(FileName); //建立并打开一新的文件
TitleStr:='';
for Counter:=0 to Dataset.FieldCount-1 do //输出各字段标示值
TitleStr:=TitleStr+Char(9)+DataSet.Fields[Counter].DisplayLabel;
TitleStr:=Trim(TitleStr);
Writeln(FileName,TitleStr);
while not Dataset.Eof do
begin
Valuestr:='';
for Counter:=0 to DataSet.FieldCount-1 do
begin
TempStr:=DataSet.Fields[Counter].AsString;
ValueStr:=ValueStr+Char(9)+TempStr;
end;
ValueStr:=Trim(ValueStr);
Writeln(FileName,ValueStr);
DataSet.Next;
end;
CloseFile(FileName);
end;
Dataset.EnableControls;
end;
end;
advStringGrid是第三方控件,而第三方控件正是为了增强标准控件的功能或者修改标准控件的不足而产生的,所以第三方控件有一些属性和方法在标准控件中没有,那是再正常不过的事情了。
要实现你要的功能,要么自己写代码(试一下seasunsky(来来往往)的能不能满足你的要求),或者用第三方控件了,好像ehLib控件包的TDBGridEh控件有将数据保存为Excel文档的功能的
--------------------排序功能使用方法: 1、TDBGridEh的OptionsEh/SghAutoSortMarking属性设置为:True;
2、TDBGridEh.Columns[*]的Title/TitleButton属性设置为:True。为什么点击列标题的时候提示关键字order附近有语法错误?