• <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

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久久99精品一区二区| 无码人妻少妇久久中文字幕 | 国产成人香蕉久久久久| 国产国产成人久久精品| 亚洲欧洲中文日韩久久AV乱码| 亚洲日韩中文无码久久| 久久香蕉一级毛片| 久久久久亚洲av综合波多野结衣| 精品久久久噜噜噜久久久 | 东方aⅴ免费观看久久av| 99久久免费国产精品热| 久久综合久久鬼色| 久久亚洲AV成人出白浆无码国产 | 99久久精品国内| 成人国内精品久久久久影院VR| 中文字幕无码久久人妻| 久久夜色精品国产亚洲| 久久男人Av资源网站无码软件| 久久久久国产一级毛片高清板| 国产精品99精品久久免费| 久久毛片一区二区| 久久久久久A亚洲欧洲AV冫| 久久亚洲精品视频| 国产精品一久久香蕉产线看| 日产精品久久久久久久性色| 久久国产三级无码一区二区| 99久久99久久| 国产一区二区三区久久精品| 亚洲AV日韩精品久久久久| 2021久久精品免费观看| 香蕉久久AⅤ一区二区三区| 国产午夜电影久久| 久久99免费视频| 国产精品久久久久久一区二区三区| 国产精品久久久久久久人人看 | 久久青青草原精品国产软件| 久久香蕉国产线看观看精品yw| 久久久这里只有精品加勒比| 午夜精品久久久久久| 精品多毛少妇人妻AV免费久久| 日本一区精品久久久久影院|