/// <summary>
        /// 读写入EXCel
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ExcelAll()
        {
            if (this.TreeView1.Visible == true)
            {
                if (this.FileUpload1.Visible == true)
                {
                    if (this.FileUpload1.FileName.ToString().Trim() == "")
                    {
                        Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请打开浏览选择EXcel!');</script>");
                        return;
                    }
                }
                else
                {
                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请选择点击一个菜单内容!');</script>");
                    return;
                }
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请点击确定!');</script>");
                return;
            }            string path = System.Web.HttpContext.Current.Server.MapPath("Excel/" + this.FileUpload1.FileName + "");
            FileUpload1.SaveAs(path);
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
            //链接Excel
            OleDbConnection cnnxls = new OleDbConnection(strConn);
            //读取Excel里面有 表Sheet1
            OleDbDataAdapter oda = new OleDbDataAdapter("select * from [Sheet1$]", cnnxls);
            DataSet ds = new DataSet();
            //将Excel里面有表内容装载到内存表中!
            oda.Fill(ds);
            DataTable dt = ds.Tables[0];
            System.Data.DataView dv = dt.DefaultView;
            foreach (DataRowView drv in dv)
            {
                mod.FirstClassID = Convert.ToInt32(this.drpfirstclass.SelectedValue.ToString());
                mod.LastClassID = Convert.ToInt32(this.drplastclass.SelectedValue.ToString());
                mod.ClassficationID = Convert.ToInt32(this.drpclassfication.SelectedValue.ToString());
                mod.KnowledgeContene = drv["KnowledgeContene"].ToString();
                mod.Pid = int.Parse(this.TreeView1.SelectedValue.ToString());
                int ret = bll1.Add(mod);
                if (ret > 0)
                {
                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加数据成功!');</script>");
                }
                else
                {
                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('添加失败!');</script>");
                }
            }
        }/// <summary>
        /// 创建树
        /// </summary>
        /// <param name="PranteID"></param>
        /// <param name="node"></param>
        protected void createTree(string PranteID, TreeNode node)
        {
            DataView dv = text_data(" Pid='" + PranteID + "'").DefaultView;            foreach (DataRowView drv in dv)
            {
                TreeNode nodes = new TreeNode(drv["KnowledgeContene"].ToString());
                nodes.Value = drv["KnowledgeID"].ToString();
                node.ChildNodes.Add(nodes);
                createTree(drv["KnowledgeID"].ToString(), nodes);
            }
        }
        protected DataTable text_data(string whereSql)
        {
            DataTable dt = bll1.GetList(whereSql).Tables[0];            return dt;        }
这个代码只能实现在excel里面含有“KnowledgeContene”的那一列,我现在是要excel里面
有理数           整式      这个第一行
正数和负数       单项式     这是第二行
在treeview里面我要第一行作为一级标题,第二行自动判断第一行的PID,然后做为相应的二级标题,我要怎么做啊?