• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 124,  comments - 29,  trackbacks - 0
             class ReadExcelToTree
                
            {
                    
            public ReadExcelToTree()
                    
            {

                    }

                    
            /// <summary>
                    
            /// 讀取Excel文件,內容存儲在DataSet中
                    
            /// </summary>
                    
            /// <param name="opnFileName">Excel文件路徑</param>
                    
            /// <returns>DataSet</returns>

                     public static DataSet ExcelToDataSet(string FileName)
                    
            {
                        
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
                        OleDbConnection conn 
            = new OleDbConnection(strConn);
                        
            string strExcel ="select * from [sheet1$]";
                        OleDbDataAdapter XlsCommand 
            = null;
                        DataSet ds 
            = new DataSet();
                        
            try
                        
            {
                            conn.Open();
                            XlsCommand 
            = new OleDbDataAdapter(strExcel, strConn);
                            XlsCommand.Fill(ds, 
            "sheet1");
                         
                        }

                        
            catch (Exception ex)
                        
            {
                            Console.WriteLine(
            "錯誤!:" + ex.Message.ToString());
                        
                        }

                        
            finally
                        
            {
                            conn.Close();
                            conn.Dispose();
                            
                        }

                        
            return ds;
                    }


                }

            主程序中調用:DataSet ds = ReadExcelToTree.ExcelToDataSet(@"CC08Help.xls");

            生成樹:
             1   private void InitTreeView(DataTable dt, TreeView tv)
             2        {
             3            TreeNode curNodeLevel0 = null, curNodeLevel1 = null, curNodeLevel2 = null,
             4                curNodeLevel3 = null, curNodeLevel4 = null, curNodeLevel5 = null,
             5                curNodeLevel6 = null, curNodeLevel7 = null;
             6
             7            //對第一層節(jié)點初始化.
             8            //就是Excel的 A1 單元格 我們定義該層節(jié)點為0層節(jié)點
             9            curNodeLevel0 = new TreeNode("聯(lián)機幫助");
            10
            11            for (int i = 0; i < dt.Rows.Count; i++)
            12            {
            13                DataRow dr = dt.Rows[i];
            14
            15                // 如果dr[1]不為空,則說明這是一個新的一層節(jié)點.該層節(jié)點為 1 層
            16                if (dr[1].ToString() != string.Empty)
            17                {
            18                    //創(chuàng)建一個節(jié)點.
            19                    TreeNode t = new TreeNode(dr[1].ToString());
            20
            21                    //將該節(jié)點放到0層節(jié)點的子節(jié)點上,即一層節(jié)點
            22                    curNodeLevel0.Nodes.Add(t);
            23
            24                    //設置當前的一層節(jié)點為剛剛生成的節(jié)點.
            25                    curNodeLevel1 = t;
            26                    //開始處理下一行.
            27                    continue;
            28                }

            29
            30
            31                // 如果循環(huán)走到這兒,則說明dr[1].ToString() == String.Empty;
            32                if (dr[2].ToString() != String.Empty)
            33                {
            34                    TreeNode t = new TreeNode(dr[2].ToString());
            35                    curNodeLevel1.Nodes.Add(t);
            36                    curNodeLevel2 = t;
            37                    continue;
            38                }

            39
            40                if (dr[3].ToString() != string.Empty)
            41                {
            42                    TreeNode t = new TreeNode(dr[3].ToString());
            43                    curNodeLevel2.Nodes.Add(t);
            44                    curNodeLevel3 = t;
            45                    continue;
            46                }

            47
            48                if (dr[4].ToString() != string.Empty)
            49                {
            50                    TreeNode t = new TreeNode(dr[4].ToString());
            51                    curNodeLevel3.Nodes.Add(t);
            52                    curNodeLevel4 = t;
            53                    continue;
            54                }

            55                if (dr[5].ToString() != string.Empty)
            56                {
            57                    TreeNode t = new TreeNode(dr[5].ToString());
            58                    curNodeLevel4.Nodes.Add(t);
            59                    curNodeLevel5 = t;
            60                    continue;
            61                }

            62                if (dr[6].ToString() != string.Empty)
            63                {
            64                    TreeNode t = new TreeNode(dr[6].ToString());
            65                    curNodeLevel5.Nodes.Add(t);
            66                    curNodeLevel6 = t;
            67                    continue;
            68                }

            69                if (dr[7].ToString() != string.Empty)
            70                {
            71                    TreeNode t = new TreeNode(dr[7].ToString());
            72                    curNodeLevel6.Nodes.Add(t);
            73                    curNodeLevel7 = t;
            74                    continue;
            75                }

            76            }

            77
            78            tv.Nodes.Add(curNodeLevel1);
            79            tv.CollapseAll();
            80        }


            程序中調用:
                    private void Help_Load(object sender, EventArgs e)
                    {
                        this.tvHelp.ImageList = this.imgLHelp;
                        DataSet ds = ReadExcelToTree.ExcelToDataSet(@"CC08Help.xls");
                        if (ds != null)
                        {
                            InitTreeView(ds.Tables[0], this.tvHelp);
                        }
                        foreach (TreeNode tn in tvHelp.Nodes)
                        {
                            SetLeafNodeImageIndex(tn);
                        }

                        this.webBrowser1.Url = new Uri(GetTNHtmlName(new TreeNode("(命令聯(lián)機幫助)")));
                    }



                    private void TVHelp_MouseClick(object sender, MouseEventArgs e)
                    {
                        TreeNode selTreenode = tvHelp.GetNodeAt(e.Location);  //注意不要用tvHelp.selected
                        if (e.Button == MouseButtons.Left)
                        {
                            if (selTreenode != null
                                && selTreenode.Nodes.Count == 0)//代表此節(jié)點是葉節(jié)點
                            {
                                this.webBrowser1.Url = new Uri(GetTNHtmlName(selTreenode)) ;
                            }
                          
                        }
                    }

             1
             2        //設置葉子節(jié)點的圖標
             3        private void SetLeafNodeImageIndex(TreeNode tn)
             4        {
             5            if (tn.Nodes.Count == 0)
             6            {
             7                tn.ImageIndex = 1;
             8                return;
             9            }

            10            else
            11            {
            12                tn.ImageIndex = 0;
            13            }

            14            foreach (TreeNode childNode in tn.Nodes)
            15            {
            16                SetLeafNodeImageIndex(childNode);
            17            }

            18        }


             

             1   private string GetTNHtmlName(TreeNode tn)
             2        {
             3            int startIndex = tn.Text.LastIndexOf('(');
             4            int startIndex1 = tn.Text.LastIndexOf(''); ;
             5            int endIndex = tn.Text.LastIndexOf(')');
             6            int endIndex1 = tn.Text.LastIndexOf('');
             7
             8            if(startIndex1 > startIndex)
             9            {
            10                startIndex = startIndex1;
            11            }

            12            if (endIndex1 > endIndex)
            13            {
            14                endIndex = endIndex1;
            15            }

            16
            17            if (startIndex < 0 || endIndex < 0)
            18            {
            19                return "res://" + System.Environment.SystemDirectory + @"\system32\shdoclc.dll/http_404.htm";
            20            }

            21
            22            string url = "file://" + Application.StartupPath + "/document/" + tn.Text.Substring(startIndex + 1, endIndex - startIndex - 1+ ".htm";
            23            return url;
            24        }


             生成樹節(jié)點的簡化代碼——改版!


             private void InitTreeView(DataTable dt, TreeView tv)
                    {
                        int colums = dt.Columns.Count;
                        TreeNode[] curNodeLevel = new TreeNode[colums];
                        //對第一層節(jié)點初始化.
                        //就是Excel的 A1 單元格 我們定義該層節(jié)點為0層節(jié)點
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            DataRow dr = dt.Rows[i];
                            for (int j = 1; j <= colums; j++)
                            {
                                if (j == 1 && dr[j].ToString()!=String.Empty)
                                {
                                    TreeNode t = new TreeNode(dr[j].ToString());
                                    curNodeLevel[0] = t;
                                    break;
                                }
                                else if(j >= 2)
                                {
                                    if (dr[j].ToString() != string.Empty)
                                    {
                                        TreeNode t = new TreeNode(dr[j].ToString());
                                        curNodeLevel[j - 2].Nodes.Add(t);
                                        curNodeLevel[j - 1] = t;
                                        break;
                                    }
                                }
                            }
                        }

                        tv.Nodes.Add(curNodeLevel[0]);
                        tv.Nodes[0].Expand();
                    }

            posted on 2008-09-19 20:25 天書 閱讀(1009) 評論(0)  編輯 收藏 引用

            <2008年9月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            常用鏈接

            留言簿(5)

            隨筆檔案

            文章分類

            文章檔案

            好友的Bolg

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            精品久久8x国产免费观看| 亚洲а∨天堂久久精品9966| 人妻久久久一区二区三区| 色欲久久久天天天综合网精品| 亚洲精品无码久久久影院相关影片 | 久久久久久青草大香综合精品| 国内精品久久久久久中文字幕| 欧美久久一级内射wwwwww.| 亚洲人成无码久久电影网站| 久久综合香蕉国产蜜臀AV| 热久久这里只有精品| 人人狠狠综合久久亚洲| 一本色道久久综合狠狠躁| 国产精品一久久香蕉国产线看 | 东方aⅴ免费观看久久av| 国产91色综合久久免费| 免费一级欧美大片久久网| 国色天香久久久久久久小说 | 久久一区二区免费播放| 人人狠狠综合久久88成人| 婷婷综合久久中文字幕| 2021国产精品午夜久久| 久久精品免费观看| 久久毛片一区二区| 一本久久a久久精品综合夜夜| 97精品伊人久久大香线蕉| 久久亚洲AV成人无码国产| 亚洲国产成人久久综合碰| 久久精品中文字幕无码绿巨人| 久久精品人妻中文系列| 亚洲国产成人久久精品动漫| 狠狠久久综合| 亚洲va中文字幕无码久久 | 亚洲精品第一综合99久久| 久久久国产精品| 国产精品无码久久四虎| 青青热久久国产久精品| 久久伊人精品青青草原高清| 无码伊人66久久大杳蕉网站谷歌 | 亚洲精品国产自在久久| segui久久国产精品|