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,