zoukankan      html  css  js  c++  java
  • C# EXCEL导入 混合列文字为空,找不到可安装的 ISAM的解决办法

    C# EXCEL导入 混合列文字为空,找不到可安装的 ISAM的解决办法 
    使用C#导入 Excel数据到 DataTable,如果连接串中只写 Excel 8.0,则正常的字符列,数值列都没有问题,但对于既有数字也有字符的混合列,则读出为空。 
      后来从网上查到加入IMEX=1 就可将混合型转换为文本,就是连接串为Excel 8.0;IMEX=1,但这有出现 “找不到可安装的 ISAM”。 
      后来在其两边加上单引号' 就可解决。也就是 'Excel 8.0;IMEX=1' 
      EXCEL 默认若前8行都没有出现文本,那么就认为这一列的所有值都是数字,可以在注册表下面语句处修改为默认值,比如500,但尽量将字符行向前。 
      HKEY_LOCAL_MACHINESOFTWAREMicrosoftJet4.0EnginesExcel 
    最后完整的函数如下: 
    public static System.Data.DataTable CallExcel(string FilePath, string sheetName) 

    OleDbConnection con = new OleDbConnection('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FilePath + ';Extended Properties='Excel 8.0;HDR=YES;IMEX=1''); 
    con.Open(); 
    string sql = 'select * from [' + sheetName + '$]';//[Sheet1$]';////选择第一个数据SHEET 
    //OleDbCommand command = new OleDbCommand(sql, con); 
    //OleDbDataReader reader = command.ExecuteReader(); 
    //if (reader.Read()) 
    //{ 
    // reader[0].ToString();//直接读出数据 
    //} 
    OleDbDataAdapter adapter = new OleDbDataAdapter(sql, con); 
    System.Data.DataTable dt = new System.Data.DataTable(); 
    adapter.Fill(dt); 
    //reader.Close(); 
    //command.Dispose(); 
    con.Close(); 
    con.Dispose(); 
    return dt; 
    }

  • 相关阅读:
    CSS3 target伪类简介
    不用position,让div垂直居中
    css3 在线编辑工具 连兼容都写好了
    a标签伪类的顺序
    oncopy和onpaste
    【leetcode】1523. Count Odd Numbers in an Interval Range
    【leetcode】1518. Water Bottles
    【leetcode】1514. Path with Maximum Probability
    【leetcode】1513. Number of Substrings With Only 1s
    【leetcode】1512. Number of Good Pairs
  • 原文地址:https://www.cnblogs.com/IcefishBingqing/p/3721450.html
Copyright © 2011-2022 走看看