procedure CopyDbDataToExcel(Args: array of const);variCount, jCount: Integer;XLApp: Variant;Sheet: Variant;I: Integer;beginScreen.Cursor := crHourGlass;if not VarIsEmpty(XLApp) thenbeginXLApp.DisplayAlerts := False;XLApp.Quit;VarClear(XLApp);end;tryXLApp := CreateOleObject('Excel.Application');exceptScreen.Cursor := crDefault;Exit;end;XLApp.WorkBooks.Add;XLApp.SheetsInNewWorkbook := High(Args) + 1;for I := Low(Args) to High(Args) dobeginXLApp.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 thenbeginScreen.Cursor := crDefault;Exit;end;TDBGrid(Args[I].VObject).DataSource.DataSet.first;for iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count - 1 doSheet.Cells[1, iCount + 1] :=TDBGrid(Args[I].VObject).Columns.Items[iCount].Title.Caption;jCount := 1;while not TDBGrid(Args[I].VObject).DataSource.DataSet.Eof dobeginfor iCount := 0 to TDBGrid(Args[I].VObject).Columns.Count - 1 doSheet.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;是用delphi开发的
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
用VS开发的吗?
VSTO装一下,支持这个功能。标准的功能。
用这个比较好些,功能和效果都不错,还有详细的帮忙文档。
关于问题补充:
不好意思,没仔细看程序。是DELPHI
1.导出到EXCEL,可以在DataSet一级操作,做一个数据连接,连接到EXCEL文件型数据库。按数据库的操作方式,可以存成一个EXCEL文件。不知是否满足您要求。
2.DELPHI 7中有OFFICE的组件,支持OFFICE 2000/2003,应该可以实现。这方面资料不多;进一步了解DELPHI的OFFICE组件,实际上还是看OFFICE的帮助,那里描述了OFFICE对象的概念。
添加回答
举报
0/150
提交
取消