解决方案 »

  1.   

    首先将Excel中的数据导入到datatable中,然后将datagridview的datasource=上面的datatable就可以了
      

  2.   

    引入excel的dll,C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Excel.dll
    源码:
    using System.Data;
    using System.Data.OleDb;
    //strFilePath是excel的路径
    // strType是excel的后缀名.XL或者.XLSX
     public DataSet GetDS(string strFilePath, string strType)
            {
                string strdb;
                if (strType.ToUpper() == ".XLS")
                {
                    strdb = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Extended Properties=Excel 8.0;";//2003
                }
                else
                {
                    strdb = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strFilePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";//2007
                }            OleDbConnection con = new OleDbConnection(strdb);
                con.Open();
                DataTable dataTable = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);//获取Sheet的名称
                string tableName = dataTable.Rows[0][2].ToString().Trim();           
                tableName = "[" + tableName.Replace("'", "") + "]";
                string strSql = "select * from " + tableName;
                OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(strSql, con);
                DataSet ds = new DataSet();
                da.Fill(ds, "poc");
                con.Close();
                return ds;
            }
      

  3.   

    楼上的有个前提,那就是Excel必须是标准的Excel,不能有合并行,合并列之类的。我在2楼已经做了回复,将Excel中的数据导入到datatable中,不一定非要加载微软自带的Excel.dll,还可以使用NPOI,这个第三方插件是个很强大的东西,楼主可以学习下。具体的实现都是小事,问题是方法,明白一个方法在开发中是很有必要的。
      

  4.   


    这样好像还是只获取到Excel单元格的内容,备注没有啊!