写代码实现吧;以下不知是否适合你? procedure TForm1.Button3Click(Sender: TObject); var i,j:integer; temp:string; wsheet:olevariant; begin if opendialog1.Execute then begin excelapplication1.Connect; ExcelApplication1.Visible[0]:=True; //更改 Excel 标题栏: ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';//从文件对话框路径打开文件 ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Open(OpenDialog1.FileName, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)); wsheet:=excelapplication1.ActiveSheet; for i:=1 to wsheet.rows.count-1 do begin adotable1.Edit; adotable1.Append; for j:=1 to wsheet.Columns.Count-1 do begin temp:=wsheet.Cells[i,j].value; adotable1.fields[j-1].asstring:=temp; end; adotable1.Post; end; end; end;
可以直接用sql的import data功能啊. 1.右擊表/所有工作/import data 2.出現選擇數據來源.你要選擇excel97-2000.加載你的excel文件.下一步選擇你要放到你表中.下一步.ok.
如果单纯只是为了显示EXECL的内容, 不介意的话你可以在你要显示的FORM中加一个OLE容器. 这个是一个可变的数据类型,一般你要的数据类型都会支持.. You Can Try it !
但是如果要打开任意的excel文件的话,你需要修改ADODataSet中的CommandText属性或ADOTable的TableName属性
要用DELPHI中的ADO系列控件访问Excel数据文件,首先应该建立一些基本概念。你需要将一个Excel数据文件想象为一个关系数据库,Excel文件中的每个工作表就对应该数据库中的一个表,而工作表中的每一列当然就是表的列了。然后,按照下列面的秘诀进行就可以。
1.设置ADOConnection的ConnectionString
构造ConnectionString时,OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider作为ADO的驱动程序。这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件。
连接的数据库名称当然就是你要打开的Excel文件,注意扩展名是*.xls,而不是*.mdb。
最关键的一点是,还要设置扩展属性Extended Properties为“Excel 8.0”,否则,测试连接时会报告无法识别数据格式的错误。Extended Properties的属性值在“所有”参数页中输入。
最后,设置完成后的ConnectionString中的各项参数为:
Provider=Microsoft.Jet.OLEDB.4.0
Data Source=MyExcelFile.xls
Extended Properties=Excel 8.0
Persist Security Info=False 2.设置ADODataSet或ADOTable
将ADODataSet或ADOTable连接到刚才的ADOConnection。如果不用ADOConnection,也可以参照上面的方法直接设置ADODataSet或ADOTable的ConnectionString属性。
对于ADODataSet,需要将CommandType属性设置为cmdTableDirect,而对于ADOTable,则将TableDirect属性设置为True。因为,访问Excel文件是直接的数据文件访问,不是通过SQL语句来操作游标访问的。如果不设置直接访问,则系统会报告SQL语句格式错误等信息。
然后,当你下拉ADODataSet中的CommandText属性或ADOTable的TableName属性时,就可以选择到要打开的工作表了。注意,表名后面多了加一个$符号。
3.打开ADODataSet或ADOTable
不用程序实现的话,就按huang_jihua(不懂……学习)说的做好了,简单。如果是一次性的操作,建议还是采用简单的方法。
用MS sql 的倒入数据功能。
源数据为EXCEL,目的数据为MS sql 。不过数据类型会全部是char,手工更改吧!
procedure TForm1.Button3Click(Sender: TObject);
var i,j:integer;
temp:string;
wsheet:olevariant;
begin
if opendialog1.Execute then
begin
excelapplication1.Connect;
ExcelApplication1.Visible[0]:=True; //更改 Excel 标题栏:
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';//从文件对话框路径打开文件
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Open(OpenDialog1.FileName,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));
wsheet:=excelapplication1.ActiveSheet;
for i:=1 to wsheet.rows.count-1 do
begin
adotable1.Edit;
adotable1.Append;
for j:=1 to wsheet.Columns.Count-1 do
begin
temp:=wsheet.Cells[i,j].value;
adotable1.fields[j-1].asstring:=temp;
end;
adotable1.Post;
end;
end;
end;
1.右擊表/所有工作/import data
2.出現選擇數據來源.你要選擇excel97-2000.加載你的excel文件.下一步選擇你要放到你表中.下一步.ok.
不介意的话你可以在你要显示的FORM中加一个OLE容器.
这个是一个可变的数据类型,一般你要的数据类型都会支持..
You Can Try it !