• <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            //對第一層節點初始化.
             8            //就是Excel的 A1 單元格 我們定義該層節點為0層節點
             9            curNodeLevel0 = new TreeNode("聯機幫助");
            10
            11            for (int i = 0; i < dt.Rows.Count; i++)
            12            {
            13                DataRow dr = dt.Rows[i];
            14
            15                // 如果dr[1]不為空,則說明這是一個新的一層節點.該層節點為 1 層
            16                if (dr[1].ToString() != string.Empty)
            17                {
            18                    //創建一個節點.
            19                    TreeNode t = new TreeNode(dr[1].ToString());
            20
            21                    //將該節點放到0層節點的子節點上,即一層節點
            22                    curNodeLevel0.Nodes.Add(t);
            23
            24                    //設置當前的一層節點為剛剛生成的節點.
            25                    curNodeLevel1 = t;
            26                    //開始處理下一行.
            27                    continue;
            28                }

            29
            30
            31                // 如果循環走到這兒,則說明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("(命令聯機幫助)")));
                    }



                    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)//代表此節點是葉節點
                            {
                                this.webBrowser1.Url = new Uri(GetTNHtmlName(selTreenode)) ;
                            }
                          
                        }
                    }

             1
             2        //設置葉子節點的圖標
             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        }


             生成樹節點的簡化代碼——改版!


             private void InitTreeView(DataTable dt, TreeView tv)
                    {
                        int colums = dt.Columns.Count;
                        TreeNode[] curNodeLevel = new TreeNode[colums];
                        //對第一層節點初始化.
                        //就是Excel的 A1 單元格 我們定義該層節點為0層節點
                        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 天書 閱讀(1011) 評論(0)  編輯 收藏 引用

            <2008年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(5)

            隨筆檔案

            文章分類

            文章檔案

            好友的Bolg

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            91精品国产高清久久久久久91| 国内精品伊人久久久久网站| 久久婷婷色香五月综合激情| 一本大道久久东京热无码AV| 亚洲国产精品一区二区三区久久| 综合久久给合久久狠狠狠97色 | 精品久久人人妻人人做精品| 一本久久综合亚洲鲁鲁五月天| 日韩精品久久久久久久电影蜜臀| 久久亚洲综合色一区二区三区| 亚洲精品久久久www| av国内精品久久久久影院| 久久久久国产精品三级网| 三上悠亚久久精品| 中文字幕无码久久久| 色综合色天天久久婷婷基地| 久久成人小视频| 久久99精品国产麻豆婷婷| 无码日韩人妻精品久久蜜桃| 欧美一级久久久久久久大片| 国产国产成人精品久久| 久久精品成人欧美大片| 午夜精品久久久久9999高清| 久久婷婷国产麻豆91天堂| 久久精品天天中文字幕人妻| 99精品国产99久久久久久97 | 少妇久久久久久被弄到高潮| 996久久国产精品线观看| 一本久久a久久精品vr综合| 亚洲&#228;v永久无码精品天堂久久 | 久久精品中文騷妇女内射| 久久天天躁狠狠躁夜夜2020一| 国内精品伊人久久久久影院对白| 久久精品视频网| 精品久久久噜噜噜久久久| 久久99精品久久久久久动态图| 久久午夜无码鲁丝片| 久久w5ww成w人免费| 精品国产VA久久久久久久冰 | 狠狠色婷婷久久一区二区三区| 亚洲国产一成人久久精品|