各位,我用C#连接EXCEL,读取其中的表格数据到Datasdet中,调试时发现到达Dataset中的表中的所有数值项全部丢失为空,文本字符项均正常,未出现丢失,请问这是怎么回事呢?我该如何解决。我想这个问题应该不会很难吧,是不是我哪里少了什么?
 public static void import()
        {
        string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                              "Extended Properties=\"Excel 8.0;HDR = No;IMEX = 1\";" +
                              "data source=" + HttpContext.Current.Server.MapPath("~/upload/A02.xls");
            // 查询语句
            string sql_F = "SELECT * FROM [{0}]";
            
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter(String.Format(sql_F, "采集表$"), connStr);//将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
            try
            {
                da.Fill(ds);    // 填充DataSet                    }
            catch (Exception ex)
            {
                 Common.Util.writeLog(ex.Message); 
            }
            Model.PartInfo newpart = new Model.PartInfo();
            DataTable dt = new DataTable();
            dt =ds.Tables[0];

解决方案 »

  1.   

    设置单元格格式
       string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
     using(OleDbConnection OleConn = new OleDbConnection(strConn))
    {
      OleConn.Open();
      String sql = "SELECT * FROM [Sheet1$]";
      OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
      DataSet ds= new DataSet();
      OleDaExcel.Fill(ds);
      OleConn.Close();
    }
      

  2.   

    遍历读取EXCEL单元格数据
      

  3.   

    单元格转换失败导致数据丢失。给你一个我写的小程序自己看看吧:
    http://download.csdn.net/source/3034170
    能够遍历excel工作表,基本功能都全了,自己参考一下吧。
    我的方法可能不是最好的,但测试较稳定呵呵
      

  4.   

    我安装了完整的office2003,但是连接时还是不能使用Excel 12.0,会提示找不到……,只能使用Excel 8.0,如果说这还必须到微软网站下载点什么,那还是免了吧,因为这不是我自己用,以后还要给客户用,他们装个office2003就可以了,没理由再去微软下载什么的。
      

  5.   

    青龙白虎??楼主是你的马甲???实在不行就在连接EXCEL中判断一下EXCEL版本吧,因为你可能不知道客户是什么版本的EXCEL,最简单的用try{}catch{}来构造连接EXCEL的语句不就行了?
      

  6.   


    下载我在3楼给你提供的小程序,看看能够读你的EXCEL表。自己研究下吧。
      

  7.   

    我行得正,坐得直,CSDN上就一个号,那个问题只不过是看你提供的下载中的说明部分提出质疑,用实际质疑那个可行性。