不知道DELPHI有没有这样的控件,能直接将EXCEL导入到DBGRID里,请高手指教。
解决方案 »
- tcpclient和tcpserver
- 如何通過窗口句柄隱藏窗口!
- 1000分求解
- 做了个超市管理系统,SQL数据库,需要源码的请留下EMAIL.................
- 如何注册控件?
- 征询解决办法(用XML),来者有分!!!!(分不够可以再加)
- 请教在ClientDataSet主从表中对DBGrid的OnTitleClick事件如何排序?
- 请问,用哪个函数可以得到当前工程编译链结后.exe文件的目录,高手请进
- 在quickrep報表中用哪個涵數可以顯示總頁數?還有。。。。
- 关于Linux这个破操作系统!
- 认为编程语言只是工具而已的可以加入本CLUB
- 通过ado调用sql server 2000的存储过程的问题 (过程需要参数 但未提供该参数)
Adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog1.FileName+';'+'Extended Properties=Excel 8.0;Persist Security Info=False';
一、 新建一项目,从控件栏servers中分别选取控件:excelapplication、excelworkbook1、excelworksheet,放到主窗体from1中,并加入stringgrid、三个按钮、五个显示字段内容的EDIT、二个操作显示记录的label、一个用于打开EXCEL电子表格的控件opendialog等,如下图所示:二、选择excel表'按钮,用于打开EXCEL文件,其代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径
opendialog1.Execute;
Try
ExcelApplication1.Connect;//EXCEL应用程序
Except
MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel Application';
try
excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定的EXCEL 文件
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;showmessage('请选择EXCEL电子表格!');
exit;
end;
end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1与Excelworkbook1建立连接
//开始从EXCEL中取数,放到stringgrid1中,取完数后关闭EXCEL
for i:=1 to 1000 do//最大取值1000
for j:=1 to 6 do
begin
if trim(excelworksheet1.cells.item[i+1,1])<>'' then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
end
else
begin
label3.caption:=inttostr(i-1);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
sqlstr 是一个查询的sql语句,比如:select * from table 或者直接写成表名,把整表导出