ExcelQueryTable怎么使用??? 看了也查找了以前的帖子,但就是没有人清楚或者用过这东西,请用过的写写怎么使用,火急????谢谢,不要发那些没有用处的导出到excel,谢谢,数据量大,上十万。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用宏试了一下,很快,但在delphi使用ExcelQueryTable,参照宏了代码,调试通过,运行的时候老说没有注册类别, 给你个demo,建立odbc为qq,导出sqlserver2000northwind数据库中的orders表数据,测试通过----------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, ExcelXP, OleServer;type TForm1 = class(TForm) Button1: TButton; ExcelApp: TExcelApplication; ExcelQueryTable: TExcelQueryTable; ExcelBook: TExcelWorkbook; procedure Button1Click(Sender: TObject); private { Private declarations } function ToExcelFile(var Filename,SheetName,WIndowCaption:OleVariant;SqlStr:String):Boolean; public { Public declarations } end;var Form1: TForm1;implementation uses ComObj;{$R *.dfm}function TForm1.ToExcelFile(var Filename,SheetName,WindowCaption:OleVariant;SqlStr:String):Boolean;varNewTemplate,ItemIndex:olevariant;CurSheet:_WorkSheet;connectStr:olevariant;beginNewTemplate:=emptyParam;trytryExcelApp.Connect;exceptMessageDlg('您可能没有安装EXCEL', mtError, [mbOk], 0);Abort;end;ExcelApp.visible[0]:=TRUE;ExcelApp.Caption:=WindowCaption;ExcelApp.Workbooks.Add(Newtemplate,0);ExcelBook.ConnectTo(ExcelApp.workBooks.Item[1]);ExcelBook.Title[0]:=WIndowCaption;ExcelBook.Activate;CurSheet:=ExcelBook.Sheets[1] as _worksheet;CurSheet.Name:=SheetName;connectstr := 'ODBC;DSN=qq;';CurSheet.QueryTables.Add(connectstr,CurSheet.range['a3','e3'],SqlStr);ExcelQueryTable.ConnectTo(CurSheet.QueryTables.Item(1));ExcelQueryTable.Refresh;excepton E: Exception dobeginItemIndex:=FALSE;ExcelBook.Close(ItemIndex);ExcelApp.Disconnect;ExcelApp.Quit;Application.MessageBox('数据输出到EXCEL过程出错,请检查EXCEL版本是否一致','警告',mb_ok);exit;end;end;ExcelQueryTable.Disconnect;ExcelBook.Disconnect;ExcelApp.Disconnect;Result:=TRUE;end;procedure TForm1.Button1Click(Sender: TObject);var XlsApp,XlsSheet,WndCaption:OleVariant;begin XlsApp:=OleVariant('c:\aa.xls'); XlsSheet:=OleVariant('a'); WndCaption:=OleVariant('test'); ToExcelFile(XlsApp,XlsSheet,WndCaption,'select * from orders');end;end. ExcelApp.visible[0]:=false;就可以不打开excle窗口加入ExcelApp.Save(XlsApp);自动保存 窗口停靠问题 寻求Fastreport 3的例子 让Hint窗口支持一些本来不具备的事件 怎么才能清空 groupbox 里所有edit 框的内容? random的使用问题 关于建立类 Delphi怎样实现这样的置顶窗体? 光标在表格的第一列时,按左移键为什么光标不会移到表格的最后一列呢?如何实现 关于位图按钮的小问题 ActiveX控件隐藏了,怎么再显示出来? 2001年的时候在chinaren上建了一个小学时候的校友录,今年终于又三个同学了!高兴! D7+Access+VF求救
----------
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, ExcelXP, OleServer;type
TForm1 = class(TForm)
Button1: TButton;
ExcelApp: TExcelApplication;
ExcelQueryTable: TExcelQueryTable;
ExcelBook: TExcelWorkbook;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function ToExcelFile(var Filename,SheetName,WIndowCaption:OleVariant;SqlStr:String):Boolean;
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses ComObj;
{$R *.dfm}function TForm1.ToExcelFile(var Filename,SheetName,WindowCaption:OleVariant;SqlStr:String):Boolean;
var
NewTemplate,ItemIndex:olevariant;
CurSheet:_WorkSheet;
connectStr:olevariant;
begin
NewTemplate:=emptyParam;
try
try
ExcelApp.Connect;
except
MessageDlg('您可能没有安装EXCEL', mtError, [mbOk], 0);
Abort;
end;
ExcelApp.visible[0]:=TRUE;
ExcelApp.Caption:=WindowCaption;
ExcelApp.Workbooks.Add(Newtemplate,0);
ExcelBook.ConnectTo(ExcelApp.workBooks.Item[1]);
ExcelBook.Title[0]:=WIndowCaption;
ExcelBook.Activate;
CurSheet:=ExcelBook.Sheets[1] as _worksheet;
CurSheet.Name:=SheetName;
connectstr := 'ODBC;DSN=qq;';
CurSheet.QueryTables.Add(connectstr,CurSheet.range['a3','e3'],SqlStr);
ExcelQueryTable.ConnectTo(CurSheet.QueryTables.Item(1));
ExcelQueryTable.Refresh;
except
on E: Exception do
begin
ItemIndex:=FALSE;
ExcelBook.Close(ItemIndex);
ExcelApp.Disconnect;
ExcelApp.Quit;
Application.MessageBox('数据输出到EXCEL过程出错,请检查EXCEL版本是否一致','警告',mb_ok);
exit;
end;
end;
ExcelQueryTable.Disconnect;
ExcelBook.Disconnect;
ExcelApp.Disconnect;
Result:=TRUE;
end;
procedure TForm1.Button1Click(Sender: TObject);
var XlsApp,XlsSheet,WndCaption:OleVariant;
begin
XlsApp:=OleVariant('c:\aa.xls');
XlsSheet:=OleVariant('a');
WndCaption:=OleVariant('test');
ToExcelFile(XlsApp,XlsSheet,WndCaption,'select * from orders');end;end.
加入ExcelApp.Save(XlsApp);自动保存