如题如能给出正确的源代码,我就给他200+n分(保底200)!
要求: 1、最好不要用elxce控件,用ole动态打开和操作库。
       2、用table连接excel,用dbgrid显示打开的excel表。

解决方案 »

  1.   

    经过摸索,我终于找到了方便快捷的通过jet把excel数据导出方法,我把我的一些经验写出来,希望对后人有帮助.
    假设有一个excel表d:\在职职工库.xls,簿中有一个表在职职工,其中有如下数据
               2002年5月职工花名册
    序号     姓名     性别    民族   工资
      1      张三       男     汉    800.00
      2      李四       男     回    1200.00
      3      张芸       女     汉    852.00
      4     何天荣      男     满    962.00现要把其中的职工数据导出到d:\zghmc.dbf.首先用excel打开d:\在职职工库.xls,选择包含职工数据的区域,不包括标题"2002年5月职工花名册",执行"插入->名称->定义",输入zgk,为所选的数据定义一个名称,关闭excel.在project中加入一个ADOConnection1、一个ADOQuery1,添加以下代码:
    ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\在职职工库.xls;Extended Properties=excel 8.0;Persist Security Info=False';
    ADOQuery1.Connection:= ADOConnection1;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select * into zghmc in "d:\" "dBASE 5.0;" from zgk' );
    ADOQuery1.ExecSQL;
    ADOQuery1.Close;然后编译运行,就把excel中的职工数据导出到d:\zghmc.dbf中了。
    如果要在程序中显示excel中的数据,添加一个ADOTable1,设置Connection为ADOConnection1就可以了.
      

  2.   

    感谢浪子--dejoy(燕青)!!你的方法我是过了,可以实现我的要求(我给定分给你了)。不过,实现起来很麻烦,要对excel表进行处理,还要对fox做善后(盖字段长度)。我想做给office girls ,对于她们,最好只是按一下鼠标左键就能显示在我的软件里,再按一下就能导进foxpro中去,并且导进去之后不做任何善后。 望dejoy 以及各位高手不吝赐教,先谢谢,然后送分!!!
      

  3.   

    先定义好一个DBF表,然后将从EXCEL转来的表中的数据导入,可以剩去FOX的善后工作
      

  4.   

    再次为dejoy的真诚而致谢!
    兄弟们请不要贴不痛不痒的回答,我不会给这种贴字分的。
      

  5.   

    谢谢谢谢当然了,我的方法并不完善,导过来的字段结构会有问题,小数位长达N位.你可以在excel中定义字段的长度,小数位再导出来.不过如果不介意的话可以使用一个叫smexport的控件,可以到http://www.51delphi.com/delphi/download?num=109下载,如果要我也可以发给你.
      

  6.   

    好像下不来,还是帮忙发给我吧: [email protected]
      

  7.   

    如果可发的话也给我发一份,谢谢
    [email protected]