日期:2014-05-17  浏览次数:20886 次

C#读取EXCEL的问题。。。
如果Excel中的某列不存在,在读取的过程中,会报“Can not find column[x]”,要如何避免这个错误呢?
如何能让他不报错,并且把数据都导入进去?找不到的那列可以跳过。。。
谢谢。。。

------解决方案--------------------
最近也有在做读取 Excel 的项目,推荐一个插件给你:EPPLUS,官方网站:http://epplus.codeplex.com/ 非常好用,也简单
------解决方案--------------------
C# code

   /// <summary>  
    /// 解析Excel,根据OleDbConnection直接连Excel  
    /// </summary>  
    /// <param name="filePath"></param>  
    /// <param name="name"></param>  
    /// <returns></returns>  
    public static DataSet LoadDataFromExcel(string filePath, string name)  
    {  
      try  
      {  
        string strConn;  
        //  strConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + filePath + ";Extended Properties=Excel 8.0";  
        strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=No\"";  
       OleDbConnection OleConn = new OleDbConnection(strConn);  
        OleConn.Open();  
        string sql = "SELECT * FROM [" + name + "$]";//可是更改Sheet名称,比如sheet2,等等   
        OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);  
        DataSet OleDsExcle = new DataSet();  
        OleDaExcel.Fill(OleDsExcle, name);  
        OleConn.Close();  
        return OleDsExcle;  
      }  
      catch (Exception err)  
      {  
        MessageBox.Show("数据绑定Excel失败! 失败原因:" + err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);  
        return null;  
      }  
    }

------解决方案--------------------
column[x]不存在,1.x lager index 2.column[x]==null
做判断
------解决方案--------------------
报错?你在读取Excel的时候select限制列名了?
------解决方案--------------------
做一个判断呗,如果是空的话就跳过去