能做到让EXCEL中的数据显示在datagridview上,并进行校验以后才导入数据库吗?
97-2007的excel文件都可以显示和导入

解决方案 »

  1.   

    通过OleDbConnection ,从excel获取数据为DataTable,然后再把获得的数据绑定至GridView上。
    例:(获取DataTable)
    DataSet dataSet = new DataSet();
                string connStr = string.Empty;
                if (is2003Version) //Excel2003
                {
                    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties=\"Excel 8.0;IMEX=1;\"";
                }
                else//Excel2003
                {
                    connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;IMEX=1;\"";
                }
                OleDbConnection oleDbConn = new OleDbConnection(connStr);
                DataTable dtSheetName =new DataTable();
                if (string.IsNullOrEmpty(sheetName))
                {
                    dtSheetName = GetWorksheetName(fileName, is2003Version);
                }
                else
                {
                    dtSheetName.Columns.Add("table_name");
                    dtSheetName.Columns.Add("table_type");
                    DataRow dr = dtSheetName.NewRow();
                    dr["table_name"] = sheetName;
                    dr["table_type"] = "table";
                    dtSheetName.Rows.Add(dr);
                }
                foreach (DataRow dr in dtSheetName.Rows)
                {
                    if (Convert.ToString(dr["table_type"]).ToLower() != "table") continue;
                    DataTable dt = new DataTable(Convert.ToString(dr["table_name"]));
                    string strSQL = string.Format("select * from [{0}]", dr["table_name"]);
                    OleDbCommand cmd = new OleDbCommand();
                    cmd.Connection = oleDbConn;
                    cmd.CommandText = strSQL;
                    cmd.CommandType = CommandType.Text;
                    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    adapter.Fill(dt);
                    dataSet.Tables.Add(dt);
                }
                return dataSet;
      

  2.   

    校验在DataTable表里做就可以呀