zoukankan      html  css  js  c++  java
  • 用c#的OLEDB导入Excel到数据库产生科学计数法问题解决

    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

    方法是连接字符串改成string strCon ="Provider=Microsoft.ACE.OleDb.12.0;Data Source=" + FileName + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";

    而且HDR必须为YES,如果改成NO即不可用

    如果提示未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序,说明没有安装office2007

    安装一个组件就成了,叫AccessDatabaseEngine 2007 Office system 驱动程序:数据连接组件,下载地址如下
    http://www.microsoft.com/downloads/zh-cn/details.aspx?displaylang=zh-cn&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891



    欢迎加入JAVA技术交流QQ群:179945282

    欢迎加入ASP.NET(C#)交流QQ群:17534377


  • 相关阅读:
    manacher(求最大回文串并返回)
    编程求一个后缀表达式的值
    栈的简单使用
    云计算的概念
    乐优商城
    四大函数型接口
    Stream流计算
    JWT实现无状态登录
    Thymeleaf模板引擎
    elasticSearch的使用
  • 原文地址:https://www.cnblogs.com/q149072205/p/2499665.html
Copyright © 2011-2022 走看看