怎样把查询结果导进execl use comobj;createoleobject(excel.applicaton) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure SavetoExcel(DBGrid1 : TDBGrid);var irange:excel97.range; iexcel:_application; i,row,ColCount:integer; book:tbook; EApp:TExcelApplication; FinshColName:string; dbgridname:Tdbgrid;begin //连接Excel dbgridname:=DBGrid1; EApp:=TExcelApplication.Create(nil); try try EApp.Connect; except application.MessageBox('本机没有安装Microsoft_Excel,不能用此功能','系统提示',0); raise; end; iexcel:=excel97.CoExcelApplication.create; //创建 Excel iexcel.Visible[0]:=true; iexcel.Workbooks.add(null,0); //创建 空库 irange:=iexcel.activecell; irange:=iexcel.Range['A1','a1']; //将光标定位 begin for i:=0 to dbgridname.FieldCount - 1 do //添加字段名 begin irange.Value:=dbgridname.Columns[i].Title.Caption; irange:=irange.Next; end; dbgridname.DataSource.DataSet.DisableControls; try //try1 book:=dbgridname.DataSource.DataSet.GetBook; try //try2 dbgridname.DataSource.DataSet.First; row:=2; while not dbgridname.DataSource.DataSet.Eof do begin irange:=iexcel.range['A'+inttostr(row),'A'+inttostr(row)]; for i:=0 to dbgridname.FieldCount - 1 do begin try irange.NumberFormat:='@'; irange.value:=dbgridname.Fields[i].Text; except end; irange:=irange.Next; end; //for dbgridname.DataSource.DataSet.Next; inc(row); end; //while finally //try2 dbgridname.DataSource.DataSet.GotoBook(book); dbgridname.DataSource.DataSet.FreeBook(book); end; //try2 finally //try1 dbgridname.DataSource.DataSet.EnableControls; end; //try1 ColCount:= dbgridname.FieldCount; if dbgridname.FieldCount>25 then FinshColName:=chr($40+(ColCount-1) div 26 )+chr($41+ (ColCount-1) mod 26) else FinshColName:=chr($41+ (ColCount-1) mod 26); irange:=iexcel.Range['A1',FinshColName+inttostr(row-1)]; // 选择数据范围 end; irange.AutoFormat(2,null,null,null,null,null,null); //0 无变化 irange.Borders.LineStyle:=7; irange.Borders.Item[7].Weight:=3; irange.Borders.Item[8].Weight:=3; irange.Borders.Item[9].Weight:=3; irange.Borders.Item[10].Weight:=3; irange.Borders.Item[11].Weight:=2; irange.Borders.Item[12].Weight:=2; //irange.Borders.Item[3].Weight:=1; finally EApp.Free; end;end; 还有个简单的,直接保存为文本格式,扩展名为EXECL的扩展名然后把没条记录写入文件每个字段用TAB分隔如1 2 3 45 6 7 8就可以了 怎么在paintbox里实现鼠标拖拽画矩形的操作? delphi case 语句 请教大家一个有关Dllhost进程的问题(400分)!!!!!!!!!!!!!!!! 还是时间控件问题 请问: 怎样屏蔽OleContainer的右键菜单呀? 关于vc++和Vc++.net的优劣 如何把jpg的图片改变成指定大小后再保存回磁盘。请指教。 请问哪位高手知道哪里有DCOM分布式系统得例子(有原代码得)可以下载参考!或提供您得程序代码~!感恩!情留下你得EMAIL~ 请问高手,一个文档和数据库的问题 奇怪的ADO问题 delphi的中文版的盗版什么时候来呀,听说是中文的帮助呀 readln的问题
var
irange:excel97.range;
iexcel:_application;
i,row,ColCount:integer;
book:tbook;
EApp:TExcelApplication;
FinshColName:string;
dbgridname:Tdbgrid;
begin
//连接Excel
dbgridname:=DBGrid1;
EApp:=TExcelApplication.Create(nil);
try
try
EApp.Connect;
except
application.MessageBox('本机没有安装Microsoft_Excel,不能用此功能','系统提示',0);
raise;
end;
iexcel:=excel97.CoExcelApplication.create; //创建 Excel
iexcel.Visible[0]:=true;
iexcel.Workbooks.add(null,0); //创建 空库
irange:=iexcel.activecell;
irange:=iexcel.Range['A1','a1']; //将光标定位
begin
for i:=0 to dbgridname.FieldCount - 1 do //添加字段名
begin
irange.Value:=dbgridname.Columns[i].Title.Caption;
irange:=irange.Next;
end;
dbgridname.DataSource.DataSet.DisableControls;
try //try1
book:=dbgridname.DataSource.DataSet.GetBook;
try //try2
dbgridname.DataSource.DataSet.First;
row:=2;
while not dbgridname.DataSource.DataSet.Eof do
begin
irange:=iexcel.range['A'+inttostr(row),'A'+inttostr(row)];
for i:=0 to dbgridname.FieldCount - 1 do
begin
try
irange.NumberFormat:='@';
irange.value:=dbgridname.Fields[i].Text;
except
end;
irange:=irange.Next;
end; //for
dbgridname.DataSource.DataSet.Next;
inc(row);
end; //while
finally //try2
dbgridname.DataSource.DataSet.GotoBook(book);
dbgridname.DataSource.DataSet.FreeBook(book);
end; //try2
finally //try1
dbgridname.DataSource.DataSet.EnableControls;
end; //try1
ColCount:= dbgridname.FieldCount;
if dbgridname.FieldCount>25 then
FinshColName:=chr($40+(ColCount-1) div 26 )+chr($41+ (ColCount-1) mod 26)
else
FinshColName:=chr($41+ (ColCount-1) mod 26);
irange:=iexcel.Range['A1',FinshColName+inttostr(row-1)]; // 选择数据范围
end;
irange.AutoFormat(2,null,null,null,null,null,null); //0 无变化
irange.Borders.LineStyle:=7;
irange.Borders.Item[7].Weight:=3;
irange.Borders.Item[8].Weight:=3;
irange.Borders.Item[9].Weight:=3;
irange.Borders.Item[10].Weight:=3;
irange.Borders.Item[11].Weight:=2;
irange.Borders.Item[12].Weight:=2;
//irange.Borders.Item[3].Weight:=1;
finally
EApp.Free;
end;
end;
然后把没条记录写入文件每个字段用TAB分隔
如
1 2 3 4
5 6 7 8
就可以了