string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=NO;IMEX=1';";                    System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
                    myConn.Open();
                    //获取excel第一标签名 
                    System.Data.DataTable schemaTable = myConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                    string tableName = schemaTable.Rows[0][2].ToString().Trim();//标签名   
                    string strCom = "SELECT *  FROM [" + tableName + "]";//查询语句   
                    System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);                    //得到自己的DataSet对象      
                    myCommand.Fill(myDataSet);
                    //关闭此数据链接      
                    myConn.Close();
Excel文件是xlsx格式的2007的
本来是103150122226
用上面的方法读出来就显示成1.0315012223e+011我说要办法就是在不改动Excel文件的条件啊。因为Excel文件是自动生生的。会有很多不可能一个一个改。网上找到一个http://www.cnblogs.com/alein/archive/2008/11/04/1326604.html,这个不行

解决方案 »

  1.   

    你可以另转换一下
    double x = 1.0315012223e+011;
             string s = x.ToString();//103150122230
      

  2.   

    写之前,设置一下cell数据类型, 把它设置成文本就行了你全是数字, excel会认为是数值型
      

  3.   

    或者你也可以这样写:  cell.value = "'"+ 值;'在excel中可以把数值转成文本
      

  4.   

    文件很多的。而且是自动生成的excel不可能一个一个设置啊
    我说的是不修改打操作Excel文件
      

  5.   

    循环加“'”吧。要不就不用excel,改txt或xml算了。
      

  6.   

    关于OLEDB导入Excel数据,产生科学计数法问题 
             近日,接到一个Excel导入需求,导入文件格式为xls 。心想这个简单,三下五除二就将新功能上线。一周后接到反馈说导入数据有乱码。发现只要导入数字字符较长时oledb读出的记录数据会以科学计数法显示。解决方法只要在Excel上将字符转换为文本即可。但是客户使用时可能是在许多文本或excel中复制粘贴,根本无法控制客户行为。 
               google查找结果说需要在连接字符串中增加“IMEX=1“可以改善问题。加入 “IMEX=1“后发现问题依然存在。忽然想到用的excel读取驱动是Microsoft.Jet.OLEDB.4.0。查询相关文档发现此驱动似乎在2003年就已经停止更新。立刻上Microsoft网站下载最新驱动Microsoft.ACE.OleDb.12.0 此驱动安装无需重新启动,经过测试问题完美解决。新驱动链接串如下"Provider=Microsoft.ACE.OleDb.12.0;Data Source=" + FileName + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
    找到办法了。。在网上找到的。如上。。
    http://www.cnblogs.com/alein/archive/2008/11/04/1326604.html