一个EXCEL用另外程序导出,修改其中数值型字段后再导入数据库,居然被修改过的数字都成了空,excel导入用的是ADO方式,请问哪位高手可以告诉我为什么这样?如何解决!

解决方案 »

  1.   

    没有改变任何东西,excel修改及新增的都不能导进去(数字形数据)
      

  2.   

    刚写的DEBGRID导出EXCELL 看有帮助吗?
    procedure TFormGzqkHZ.DataToExcel(aPath: string);
    var
      MySQL,ConnStr: string;
    begin
      ConnStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=' + aPath + ';Persist Security Info=False';
      MySQL := 'SELECT * INTO [SHEET1] FROM TBLGZFFQKLS IN [ODBC]' + ' [ODBC;Driver=SQL Server;UID=sa;PWD=;Server='+ frmMain.IpCode +';DataBase=SalaryAuidit;]';
      try
        ADOConnExcel.Connected := False;
        ADOConnExcel.ConnectionString := ConnStr;
        ADOConnExcel.Connected := True;
        ADOConnExcel.Execute(MySQL);
        Application.MessageBox('导出EXCEL成功','信息提示!',mb_ok+mb_iconinformation);
        ADOConnExcel.Connected := False;
      except
        Application.MessageBox('导出EXCEL失败','错误!',mb_ok+mb_iconStop);
        ADOConnExcel.Connected := False;
      end;
    end;
      

  3.   

    谢谢楼上,可我的问题是EXCEL表在导入数据库时候出问题,主要是EXCEL表中的数字不能修改或新增,否则导进去成了空值(源EXCEL表也是程序从库中导出的)
      

  4.   

    你是打开excel文件进行修改的吧!是不是excel表格里前面有个感叹号的单元格倒入的都是空的。
    你点感叹号会有个菜单出来,它会提示你转换成什么格式,你就转换成哪个格式,直到感叹号没有就可以到入了。
      

  5.   

    不是的!
    原来EXCEL文件:
    PID  NAME   MONEY
    101  王勤   100.00   (其他程序导出,ADO显示正常)
    102  王勤   100.00   (其他程序导出,ADO显示正常)
    103  王勤   100.00   (其他程序导出修该后MONEY为空)
    104  王勤   100.00   (其他程序导出修该后MONEY为空)
    105  王勤   100.00    新增数据MONEY为空,其他字段正常
    106  王勤   100.00    新增数据MONEY为空,其他字段正常
    107  王勤   100.00    新增数据MONEY为空,其他字段正常用ACCESS导入的时候显示类型转换失败,失败的记录都是修改过的和新增的!
    有高手可以回答这是为什么?
      

  6.   

    TO: cblearn() 
    你注意看你的excel文件的 MONEY列,你修改过的和新增的格子有四个小蓝点,你点到那个有蓝点的单元格就会出现我上面说 的 感叹号的。---------------如果不是这样我就不知道了!
      

  7.   

    我也用ADO和OLE 链接程序,从没你说的那种情况,你应该从以下检查:
    1,链接ADO有无问题。
       这是我的链接  ConAdoStr        = 'Provider=Microsoft.Jet.OLEDB.4.0;'+
                         'User ID=Admin;'+
                         'Password="";'+
                         'Data Source= %s ;'+
                         'Extended Properties=excel 8.0;'+
                         'Persist Security Info=false';
    2  看EXCEL 每个数据点的“设置单元格格式”中的“数字”页,看看分类是否相同
    3  用其他链接方式看看数据是否有问题。如用ODBC
    这几点应该会帮助你解决问题
      

  8.   

    我的连接跟楼上的一样,不修改或新增数据导入都正常,一但原来EXCEL表的数字列被修改后,数字列倒入为空,用ACCESS导也一样!哪位有兴趣留下邮箱,我把原EXCEL发过去,看是否有高手能解决!
      

  9.   

    你越说越像我说的情况,你发给我xhh_gzkz  21cn.com.cn
      

  10.   

    上面应该是 xhh_gzkz  21cn.com
    不好意思,没有收到!~
      

  11.   

    谢谢三友的帮助,我没用ADO方式就可以了,虽然速度慢点,但麻烦少点了!