中易网

如何将Excel导入到DataGridView中

答案:1  悬赏:0  
解决时间 2021-01-14 15:34
  • 提问者网友:玫瑰园
  • 2021-01-13 15:53
如何将Excel导入到DataGridView中
最佳答案
  • 二级知识专家网友:我住北渡口
  • 2020-09-24 05:58
参考代码如下
///

/// Excel数据导入方法

/// 作者:lhxhappy

///


///

///

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;

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息