从excel导入到数据集发现某些记录的内容丢失
查了很多资料,都解决不了,网上也是只有问的没答的。
希望这里有仙人帮忙。
我用oledb打开excel的。

解决方案 »

  1.   

    使用oledb打开excel的是会有此问题的.
    解决方法引用Excel组件读取则不会有遗漏,不过在处理速度上会有一定影响.
      

  2.   

    难道是oledb读excel的缺陷,也就是说,如果硬要用oledb去打开excel,这个问题就是无法解决的?
      

  3.   

    private DataSet ReadExcel(string strFileName)
    {
    string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source =" +strFileName + ";Extended Properties = Excel 8.0";
    OleDbConnection oleConnection = new OleDbConnection(strConnection);
    try
    {
    string strCommondText = " SELECT * FROM [Sheet1$] ";
    oleConnection.Open();
    DataSet dsRead = new DataSet();
    OleDbDataAdapter oleAdper = new OleDbDataAdapter(strCommondText,oleConnection);
    oleAdper.Fill(dsRead,"Pantent");
    return dsRead;
    }
    catch(System.Exception)
    {
    throw new ApplicationException("读取数据源文件时出错");
    }
    finally
    {
    oleConnection.Close();
    }
    }试下这个
      

  4.   

    string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +  strFileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
      

  5.   

    遇到过,可能是datagrid中的格式拦位与excel里面格式拦位不一致.且datagrid中AutoGenerateColumns属性设置false所致!
      

  6.   

    还有就是客户端的XLS不是服务器端的XLS.你要先上载到服务器然后对服务器上的XLS操作.  '保存至对应server中   
    MaterialFileToUpload.PostedFile.SaveAs(PFP   &   FP)   
    FileName   =   HalfFileToUpload.PostedFile.FileName   
        
    If   Trim(FileName)   =   ""   Then   
    lblMsg.Text   =   "<font   color=red>请选择您要上载的Excel檔</font>"   
    Exit   Sub   
    End   If   
        
    If   CheckIsExcelFile(HalfFileToUpload.PostedFile.FileName)   =   False   Then   
    lblMsg.Text   =   "<font   color=red>请您选择excel档案径行上载!!</font>"   
     Exit   Sub   
    End IF
     
    其他的一样!
      

  7.   

    多谢 net_lover(【孟子E章】)
      

  8.   

    谢谢楼主,谢谢net_lover(【孟子E章】) 。
    我也遇到这个问题,有一列有数据,就是读不出来,增加;HDR=Yes;IMEX=1\后,就可以读出来了:)