求救!求救!!在线等待!如何将dbgird中的内容导入表格??
解决方案 »
- sql字段空值问题(sql与delphi转换问题)
- 初学网络编程卡主了!自动登录的问题
- 数据不能添加到sqlserver数据库的问题,请给位高手解答!
- 为什么2000下编译的程序在2003下运行不了?
- 怎样在dbgrid里面实现下面的功能呢?
- 我在一个DLL1里封装了一个DataModule,DataModule包含所有数据感知控件和所有的数据控制控件,我怎样在另一个封装了MDIChild的DLL2里动态加
- 关于TEdit的一个菜问题
- 关于GetActiveOleObject(ClassName)方法的问题,各位请帮帮忙!
- 关于感情的问题……
- PDF文件如何打开??
- 如何实现数据库中数据的导入和导出?
- 记得delphi中有一个命令可以显示一个对话框得到一个返回的字符串的,是什么?忘记了,
功能描述:把DBGrid输出到Excel表格(支持多Sheet)
设计:CoolSlob
日期:2002-10-23
支持:[email protected]
调用格式:CopyDbDataToExcel([DBGrid1, DBGrid2]);
}
procedure CopyDbDataToExcel(Args: array of const);
var
iCount, jCount: Integer;
XLApp: Variant;
Sheet: Variant;
I: Integer;
begin
Screen.Cursor := crHourGlass;
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
VarClear(XLApp);
end; try
XLApp := CreateOleObject('Excel.Application');
except
Screen.Cursor := crDefault;
Exit;
end; XLApp.WorkBooks.Add;
XLApp.SheetsInNewWorkbook := High(Args) + 1; for I := Low(Args) to High(Args) do
begin
XLApp.WorkBooks[1].WorkSheets[I+1].Name := TDBGrid(Args[I].VObject).Name;
Sheet := XLApp.Workbooks[1].WorkSheets[TDBGrid(Args[I].VObject).Name];
if not TDBGrid(Args[I].VObject).DataSource.DataSet.Active then
begin
Screen.Cursor := crDefault;
Exit;
end; TDBGrid(Args[I].VObject).DataSource.DataSet.first;
for iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count - 1 do
Sheet.Cells[1, iCount + 1] :=
TDBGrid(Args[I].VObject).Columns.Items[iCount].Title.Caption;
jCount := 1;
while not TDBGrid(Args[I].VObject).DataSource.DataSet.Eof do
begin
for iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count - 1 do
Sheet.Cells[jCount + 1, iCount + 1] :=
TDBGrid(Args[I].VObject).Columns.Items[iCount].Field.AsString;
Inc(jCount);
TDBGrid(Args[I].VObject).DataSource.DataSet.Next;
end;
XlApp.Visible := True;
end;
Screen.Cursor := crDefault;
end;