//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); }
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); }