你是怎么导入的?如果你用程序的话,试着在Extended Propertie里加IMEX=1;":cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test 
5.xls;Extended Properties='Excel 8.0;IMEX=1;HDR=Yes'"

解决方案 »

  1.   

    SELECT cast(你的数字列 as varchar(1000)) 别名 into SQL新表
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\aa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...表名这样看看注意:你不要打开excel文件的同时掉用它!你关掉excel!按第一行必须是列名!你可以先用导入导出工具,把一个表导为excel看看它的格式是什么!
      

  2.   

    EXEC  master..xp_cmdshell  'bcp  test.dbo.表 in  c:\temp1.xls  -c  -q  -S"servername"  -U"sa"  -P""'表必须预先存在
      

  3.   

    TRY:
    execl中把此列设为文本类型
      

  4.   

    通常丢的是由数字组成的列值,你可以在Excel中做个宏将相应列值前加:'
      

  5.   

    上面的老兄说得方法倒也行得通,因为从SQL 2000中导出数据到Excel中字符型数据就在前面加有字符 ' 的,我以前用过别一种间接的方法,就是从excel->txt->sql server2000.