求~~~~~~把DBGrid导入excel全过程~!!~!~!无bug的

lzx130 2004-05-10 03:33:06
最好是范例啊~~

谢谢~~~~
...全文
275 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdqhlyf 2004-07-08
  • 打赏
  • 举报
回复
楼主的分有点少,
liulhj 2004-07-08
  • 打赏
  • 举报
回复
经典问题,收藏!
hlb1111 2004-06-25
  • 打赏
  • 举报
回复
收藏
zfang 2004-06-24
  • 打赏
  • 举报
回复
收藏
huojiehai 2004-06-24
  • 打赏
  • 举报
回复
下载个dx的TDxDBgrid就有SaveToXLS方法,很方便,没装excel也可以导为xls文件
大地精灵 2004-06-24
  • 打赏
  • 举报
回复
我认为楼主,思想就不太对,已经给你提供函数了,下面很多就由你来做了,别人只是给你一个思想,全给你代码,还要你干吗啊,而且我认为秋风的代码很不错,我也有相同的函数.
kuangyulai 2004-06-24
  • 打赏
  • 举报
回复
good
linnet2000 2004-06-21
  • 打赏
  • 举报
回复
收藏
ghtghtmalone 2004-05-11
  • 打赏
  • 举报
回复
procedure TW_Kqrb.SpeedButton12Click(Sender: TObject);
var
i,row:integer;
j:Int64;
Excel:variant;
begin
If (Query1.Active = False) or (Query1.RecordCount = 0) Then Exit;

Excel:=UnAssigned;
Try
Excel:=CreateOleObject('Excel.Application');
Except
Application.MessageBox('Excel应用程序没有找到,系统不能将数据导入Excel!','错误',MB_OK + MB_ICONERROR);
Exit;
End;
Excel.Visible:=True;
Excel.DisplayAlerts:=false;
Excel.WorkBooks.Add;
// RefreshInfo;
SetForegroundWindow(Handle);
Excel.Caption:='考勤日报';
Excel.Cells[1,1]:=P_gsid;
Excel.Cells[2,1]:='考勤日报';


For I:=0 to DbGrid1.Columns.Count - 1 do
// ExcelWorksheet1.Cells.Item[5,I+1]:=DbGrid1.Columns[I].Title.Caption;
Excel.Cells[5,I+1]:=DbGrid1.Columns[I].Title.Caption;


Row:=6;
Query1.First;
While Not Query1.Eof do
begin
Application.ProcessMessages;
For I:=0 to DbGrid1.Columns.Count - 1 do
Excel.Cells[Row,I+1]:=''''+Query1.FieldByName(DbGrid1.Columns[I].FieldName).AsString;
Query1.Next;
Row:=Row+1;
end;


end;
楚人无衣 2004-05-11
  • 打赏
  • 举报
回复
呵呵,找找有没有这样的控件;其实你可以在调用它时用一个InputBox来取一个文件名传入过程的FileName啊
lzx130 2004-05-11
  • 打赏
  • 举报
回复
我要有对话框的,不用在程序中运行,只是要在程序中存储的啊~~~~!

麻烦了谢谢~~~~
lzx130 2004-05-11
  • 打赏
  • 举报
回复
要是插入图片怎么办啊???
楚人无衣 2004-05-10
  • 打赏
  • 举报
回复
procedure TfrmGlobal.DBGridInFoToExcel(FileName, TitleCaption: string;
MakeDataSource: TDataSource; makeDBGrid: TDBGrid);
var
xlApp, xlSheet, szValue: Variant;
ARow, iLoop: word;
begin
xlApp := CreateOleObject('Excel.Application');
try
xlSheet := CreateOleObject('Excel.Sheet');
xlSheet := xlApp.WorkBooks.Add;

// 主标题
xlSheet.WorkSheets[1].Cells[1,1] := TitleCaption;

    // 表格标题   
for iLoop := 0 to makeDBGridEh.Columns.Count - 1 do
xlSheet.WorkSheets[1].Cells[2, iLoop+1] := makeDBGridEh.Columns[iLoop].Title.Caption;

// 数据
ARow := 3;
with MakeDataSource.DataSet do
begin
DisableControls;
First;
while not Eof do
begin
for iLoop := 0 to Fields.Count - 1 do
begin
szValue := Fields[iLoop].Value;
xlSheet.WorkSheets[1].Cells[ARow, iLoop+1] := szValue;
end;
Inc(ARow);
Next;
end;
First;
EnableControls;
end;

try
xlSheet.SaveAs(FileName);
Application.MessageBox('导出完毕!', '提示', MB_IconExclamation);
finally
xlSheet.Close;
xlApp.Quit;
xlApp := UnAssigned;
end;
except
MessageBox(handle, '本机没有安装Excel.', '提示',MB_IconExclamation);
end;

end;
lzx130 2004-05-10
  • 打赏
  • 举报
回复
代码啊~~~~~~~~~

~~~~~
~~~
~~

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧