当前位置:编程学习 > C#/ASP.NET >>

C# 怎么将excel中的数据导入到 datagridview ??

要将excel中的内容导入到 datagridview 中 ??就是单纯的导入 没有别的操作~!!!急急急呀~!!
答案:取出excel的内容,大概有几种访问方式
第一 利用office组件,直接使用代码访问excel
第二 利用ADO.NET也可以访问
至于到那些数据控件,不用说了吧
其他:///<summary>
/// 点击按钮导入数据
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
private void button1_Click(object sender, EventArgs e)
        {
            //打开一个文件选择框            OpenFileDialog ofd =new OpenFileDialog();
            ofd.Title ="Excel文件";
            ofd.FileName ="";
            ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录            ofd.Filter ="Excel文件(*.xls)|*.xls";
            ofd.ValidateNames =true;     //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名            ofd.CheckFileExists =true;  //验证路径有效性            ofd.CheckPathExists =true; //验证文件有效性string strName =string.Empty;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                strName = ofd.FileName;
            }

            if (strName =="")
            {
                MessageBox.Show("没有选择Excel文件!无法进行数据导入");
                return;
            }
            //调用导入数据方法            EcxelToDataGridView(strName, this.hpGridView1);
        }

Excel数据导入方法

 ///<summary>
/// Excel数据导入方法
//</summary>
///<param name="filePath"></param>
///<param name="dgv"></param>
public void EcxelToDataGridView(string filePath,DataGridView dgv)
        {
            //根据路径打开一个Excel文件并将数据填充到DataSet中string strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = "+ filePath +";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入            OleDbConnection conn =new OleDbConnection(strConn);
            conn.Open();
            string strExcel ="";
            OleDbDataAdapter myCommand =null;
            DataSet ds =null;
            strExcel ="select  * from   [sheet1$]";
            myCommand =new OleDbDataAdapter(strExcel, strConn);
            ds =new DataSet();
            myCommand.Fill(ds, "table1");

            //根据DataGridView的列构造一个新的DataTable            DataTable tb =new DataTable();
            foreach (DataGridViewColumn dgvc in dgv.Columns)
            {
                if (dgvc.Visible && dgvc.CellType !=typeof(DataGridViewCheckBoxCell))
                {
                    DataColumn dc =new DataColumn();
                    dc.ColumnName = dgvc.DataPropertyName;
                    //dc.DataType = dgvc.ValueType;//若需要限制导入时的数据类型则取消注释,前提是DataGridView必须先绑定一个数据源那怕是空的DataTable                    tb.Columns.Add(dc);
                }
            }

            //根据Excel的行逐一对上面构造的DataTable的列进行赋值foreach (DataRow excelRow in ds.Tables[0].Rows)
            {
                int i =0;
                DataRow dr = tb.NewRow();
                foreach (DataColumn dc in tb.Columns)
                {
                    dr[dc] = excelRow[i];
                    i++;
                }
                tb.Rows.Add(dr);
            }
            //在DataGridView中显示导入的数据            dgv.DataSource = tb;
        }

上一个:Treeview 多个父节点下有相同的子节点 如何选中一个默认选中其他几个
下一个:C#中DGV怎么获取选中行里单元格的值

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,