datagridview的若干问题与解决方法

这篇博客总结了在使用DataGridView时导入Excel数据并进行类似Excel操作时遇到的问题,包括复制、剪切、粘贴、清空、增删行和列等。作者详细描述了在尝试插入行时遇到的数据源绑定问题及其解决方法,还提到了导出到Excel/Word的功能。
摘要由CSDN通过智能技术生成

datagridview的若干问题与解决方法

datagridview做完已几天了,是时候写个总结了。

我的任务是datagridview读取Excel数据,并能够像操作Excel一样进行复制、剪切、粘贴、清空、增加行、删除行、增加列、删除列,导出Excel/Word.现将我遇到额问题与解决方法一一陈述。

1.导入Excel。代码走先。

  public void ExcelToDataGridView(string filePath, DataGridView dataGridView1)
        {
            //根据路径打开一个Excel文件并将数据填充到DataSet中
            string strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + filePath + "; Extended Properties = 'Excel 8.0;HDR =YES; IMEX=2'";
            // 导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            string strExcel = "select * from [sheet1$]";
            OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, strConn);
            ds = new DataSet();
            myCommand.Fill(ds, "[Sheet1$]");
            dataGridView1.DataMember = "[Sheet1$]";
            dataGridView1.DataSource = ds;
            conn.Close();
            dataGridView1.AllowUserToAddRows = true;
            //禁用自动排序
            for (int k= 0;k < dataGridView1.Columns.Count; k++)
            {
                dataGridView1.Columns[k].SortMode = DataGridViewColumnSortMode.NotSortable;
            }

            int cCount = dataGridView1.ColumnCount;
            int rCount = dataGridView1.RowCount;
            double[,] array = new double[rCount, cCount];
            for (int j = 0; j < rCount - 1; j++)                               // 逐行遍历
            {
                for (int i = 0; i < cCount - 1; i++)                          // 逐列遍历
                {
                    array[j, i] = Convert.ToDouble(dataGridView1.Rows[j].Cells[i].Value.ToString());
                }
            }
        }
  private void button1_Click(object sender,
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值