• <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文件,內(nèi)容存儲(chǔ)在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(
            "錯(cuò)誤!:" + ex.Message.ToString());
                        
                        }

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

                        
            return ds;
                    }


                }

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

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

            29
            30
            31                // 如果循環(huán)走到這兒,則說(shuō)明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        }


            程序中調(diào)用:
                    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)機(jī)幫助)")));
                    }



                    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é)點(diǎn)是葉節(jié)點(diǎn)
                            {
                                this.webBrowser1.Url = new Uri(GetTNHtmlName(selTreenode)) ;
                            }
                          
                        }
                    }

             1
             2        //設(shè)置葉子節(jié)點(diǎn)的圖標(biāo)
             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        }


             生成樹(shù)節(jié)點(diǎn)的簡(jiǎn)化代碼——改版!


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

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理



            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(5)

            隨筆檔案

            文章分類(lèi)

            文章檔案

            好友的Bolg

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久久国产精品福利免费| 久久久久久毛片免费看| 国内精品久久久久久久久| 久久亚洲精品国产亚洲老地址| 精品久久无码中文字幕| 亚洲精品乱码久久久久久不卡| 18岁日韩内射颜射午夜久久成人| 久久精品中文无码资源站| 久久国产视频网| 国产精品久久久久久久久| 久久久亚洲裙底偷窥综合| 久久99亚洲综合精品首页| 成人久久精品一区二区三区| 久久人人爽人人爽人人片av麻烦 | 色偷偷888欧美精品久久久| 狠狠色婷婷久久一区二区| 国产精品免费久久| 久久精品国产69国产精品亚洲| 日韩人妻无码一区二区三区久久 | 国产精品激情综合久久| 97精品久久天干天天天按摩| 亚洲av伊人久久综合密臀性色 | 国产精品久久国产精麻豆99网站| 久久久久久久久久久久久久| 久久毛片免费看一区二区三区| 国产亚洲美女精品久久久| 99久久国产热无码精品免费久久久久 | 亚洲国产成人久久精品99| 久久免费香蕉视频| 久久亚洲精品无码观看不卡| 国产99久久久久久免费看| 国产99久久久国产精免费| 国产精品久久久久一区二区三区| 91久久精品视频| 久久精品国产精品亚洲| 久久精品国产亚洲7777| 久久精品成人免费观看97| 久久亚洲精品无码观看不卡| 欧美粉嫩小泬久久久久久久 | 蜜桃麻豆WWW久久囤产精品| 久久婷婷人人澡人人爽人人爱 |