本帖最后由 ForeverAD 于 2010-06-01 19:52:34 编辑

解决方案 »

  1.   

    字段不一致 try一下
    exel下面表头可以取到~google上找一找。。 
      

  2.   

    谢谢大侠关注 我说了 但都是一下固定表头的内容 gridview用到的
    大侠能不能给点提示 样板代码最好
    也不知道加在哪合适
      

  3.   

    大侠 您可能误会了 如果正确选择excel不会出错能实现导入
    我就是怕万一用户在导入的时候选了一张别的excel导入 跟后台表不一致 就会出现错误提示 
    现在我就是想让各位大侠帮我想想注意 在什么位置写一段代码 能提示用户文件选择错误(不是后缀错误)
      

  4.   

    打开excel,导入到dataset,判断字段名称
    或打开excel文件,判断字段名称
    foreach(DataColumn col in myTable.Columns)
    {
    col.ColumnName
    }
      

  5.   

    也可以通过对模板中没用用到的列的和表头同一行的单元格比如第15列第一行写入一个固定字符串MyTemplate,然后隐藏该列并且锁定模板不允许用户修改。这样程式中通过如下方式判断:
    if(ds.Table[0].Columns[15].ColumnName != MyTemplate)
    {
       Response.Write("<script>alert('请选择正确的模板.');</script>");
    }
      

  6.   

    在要导入的EXCEL里面写入?
    大侠能用代码举个例子么
    没看明白
      

  7.   

    //连接Excel文件,读入myDstaSet
                                String strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1'", serverpath);
                                OleDbConnection Excel_conn = new OleDbConnection(strConnectionString);
                                Excel_conn.Open();
                                DataTable dtExcelSchema = Excel_conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });//建立连接Excel的数据表
                                string SheetName = "";
                                SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();//取出第一个工作表我名称
                                Excel_conn.Close();                            string query = "SELECT *   FROM " + "[" + SheetName + "]";//查询Excel字符串
                                OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query, Excel_conn);
                                DataSet myDataSet = new DataSet();
                                Excel_conn.Open();
                                oleAdapter.Fill(myDataSet, "Excel_Sheet1");
                                Excel_conn.Close();
     if ((myDataSet.Tables["Excel_Sheet1"].Columns[0].Caption == "入学时间") && (myDataSet.Tables["Excel_Sheet1"].Columns[1].Caption == "姓名") && (myDataSet.Tables["Excel_Sheet1"].Columns[2].Caption == "性别") && (myDataSet.Tables["Excel_Sheet1"].Columns[3].Caption == "学号") && (myDataSet.Tables["Excel_Sheet1"].Columns[4].Caption == "专用学号") && (myDataSet.Tables["Excel_Sheet1"].Columns[5].Caption == "班级"))
                                {//判断导入的Excel文件格式是否是设定的格式
    //...}
      

  8.   

    谢谢大侠关注 不用try捕获异常回滚的话 用if? 
    有什么其他的好主意么?
      

  9.   

    感谢gdlpc大侠~ 调试成功~ 给分~