解决方案 »

  1.   

    读取excel,我还是建议用oledb,虽然有些问题,包括某些标题读不出(通常是合并单元格),数据类型会搞错,顺序会和excel中不一样,但好歹只要格式对,基本能读出来,且格式不变,问题也比较稳定。
    比如你读不出的这列列头一般来说会变成F1,还是能够用的。
    NPOI我主要是写excel才用,比oledb快,且方便,且有更多的可控制项。
      

  2.   

         string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test1.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
                 OleDbConnection conn = new OleDbConnection(strConn);
                 string strExcel = "";
                 DataSet ds = new DataSet();
                 strExcel = "select * from [sheet1$]";
                 OleDbDataAdapter da = new OleDbDataAdapter(strExcel, strConn);
                 da.Fill(ds);  
                 dataGridView1.DataSource = ds.Tables[0];
                 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                 {
                     string s = ds.Tables[0].Rows[i][0].ToString();//读取第一列值
                 }
      

  3.   

    刚开始是用的OleDb,不是第一行第一列读不出来,是整个第一列都没读出来,这才换的NPOI,刚刚又做了一个测试,把源Excel文件中的内容,Copy到新的Excel中,然后用OleDb读,一样读不出来,但用NPOI读就读出来了,也不晓得原Excel格式有啥问题?郁闷的不行
      

  4.   

    刚开始是用的OleDb,不是第一行第一列读不出来,是整个第一列都没读出来,这才换的NPOI,刚刚又做了一个测试,把源Excel文件中的内容,Copy到新的Excel中,然后用OleDb读,一样读不出来,但用NPOI读就读出来了,也不晓得原Excel格式有啥问题?郁闷的不行Excel有很多原因导致读取不到数据,曾经遇到好几次,把Excel里面的内容重新复制到新Excel里面就可以读取了
      

  5.   

    http://download.csdn.net/detail/diaodiaop/7611721一般来说应该不是权限的问题.. 看是否是版本的问题.上面的读取没问题 建议LZ下载下来看看读取你的xls看是否保存..
      

  6.   

    已经测试过好几遍了,把原有的文件中的任意一个单元格修改后保存,就可以读出来了。。回版主:把Excel中的内容复制到新Excel后,确实可以读出来,但额的Excel文件有点多,有1W+。。现在可以了,兄弟我用了第三种办法,直接用COM组件读取,现在可以读了,就是有点慢
    谢谢各位大神。。