Esempio n. 1
0
        //tree.xml读写
        public static List <Node> ReadTableTreeXML()
        {
            ConfigUtils.CreateTableTreeXML();
            XmlDocument doc  = new XmlDocument();
            List <Node> list = new List <Node>();

            try
            {
                doc.Load(Setting.TREE_FILE);
                XmlNode root = doc.SelectSingleNode("root");
                foreach (XmlNode node in root.ChildNodes)
                {
                    Node nd = new Node();
                    nd.sheetname = new List <string>();
                    XmlElement ele = (XmlElement)node;
                    nd.bookname = ele.GetAttribute("name");
                    foreach (XmlNode subNode in ele.ChildNodes)
                    {
                        nd.sheetname.Add(subNode.InnerText);
                    }
                    list.Add(nd);
                }
            }
            catch (System.Exception ex)
            {
                ConfigUtils.Error(ex.Message, ex.StackTrace);
            }
            return(list);
        }
Esempio n. 2
0
        public static bool WriteTableTreeXML(string excelDirectory, BackgroundWorker bw)
        {
            ConfigUtils.CreateTableTreeXML();
            XmlDocument doc = new XmlDocument();

            try
            {
                doc.Load(Setting.TREE_FILE);
                XmlNode root = doc.SelectSingleNode("root");
                root.InnerText = null;
                DirectoryInfo baseDir = new DirectoryInfo(excelDirectory);
                FileInfo[]    files   = baseDir.GetFiles("*.xls*");
                int           size    = files.GetLength(0);
                int           cur     = 0;
                foreach (FileInfo file in files)
                {
                    if (bw.CancellationPending)
                    {
                        return(false);
                    }
                    if (file.Name.StartsWith("~$"))
                    {
                        continue;
                    }
                    bw.ReportProgress((int)(cur * 100.0f / size), "正在搜索: " + file.Name);
                    XmlElement xmlElm = doc.CreateElement("excel");
                    xmlElm.SetAttribute("name", file.Name);

                    List <string> sheetNames = ExcelUtils.ImportSheetName(file.FullName);
                    foreach (string sheetName in sheetNames)
                    {
                        XmlElement xmlSubElm = doc.CreateElement("sheet");
                        xmlSubElm.InnerText = sheetName;
                        xmlElm.AppendChild(xmlSubElm);
                    }
                    root.AppendChild(xmlElm);
                    ++cur;
                }
                doc.Save(Setting.TREE_FILE);

                bw.ReportProgress(100, string.Format("共搜索到{0}个文件", size));
            }
            catch (System.Exception ex)
            {
                ConfigUtils.Error(ex.Message, ex.StackTrace);
                return(false);
            }

            return(true);
        }