如题,通过单击一个按钮可以打开excel文件,并将excel里面的内容提取到这个datagridview里面。对于单击不同的按钮,datagridview之前的数据全部覆盖!且允许excel的合并单元格内容完好显示在里面~

解决方案 »

  1.   

    http://download.csdn.net/source/1100066
      

  2.   

     //打开一个文件选择框
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.Title = "Excel文件";
                ofd.FileName = "";
                ofd.Filter = "Excel文件(*.xls)|*.xls";
                try
                {
                                  if (ofd.ShowDialog() == DialogResult.OK)
                    {
                        string tableName = "";
                        //if (arratlist != null)
                        //{
                        //    arratlist.Clear();
                        //}
                        string Path = ofd.FileName;
                        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Excel 8.0;";
                        OleDbConnection conn = new OleDbConnection(strConn);
                        conn.Open();
                        System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                        tableName = schemaTable.Rows[0][2].ToString().Trim();
                        //for (int i = 0; i < schemaTable.Rows.Count; i++)
                        //{
                        //    arratlist.Add(schemaTable.Rows[i][2].ToString().TrimStart('\'').Trim('\'', '$'));//
                        //}
                        //arratlist.Sort();
                        string strExcel = "Select   *   From   [" + tableName + "]";
                        OleDbCommand cmd = new OleDbCommand(strExcel, conn);
                        System.Data.DataTable excelDt = new System.Data.DataTable();
                        OleDbDataAdapter da = new OleDbDataAdapter(strExcel, conn);
                        da.Fill(excelDt);
                        conn.Close();
                        MessageBox.Show("excel 导入成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        if (excelDt != null)
                        {
                            dataGridView1.DataSource = excelDt;
                        }
                    }
                }
                catch (Exception p)
                {                MessageBox.Show(p.Message+"导入文件时出错,文件可能正被打开", "提示");
                }
      

  3.   

    那怎么重新绑定呢?原来的datagridview已经绑定了一个数据源,现在单击另一个按钮,怎么让datagridview的数据源发生变化呢?能给一段实例代码吗?谢谢~
      

  4.   

    在这个单击按钮中重新设置 dataGridView1.DataSource 
      

  5.   

    导入EXCEL数据,刷新gridview吧