private void UCDevicesCollectionConfig_Load(object sender, EventArgs e) { addedDevs = Devices.DevicesCollection.Devices; SetListViewDateSet(addedDevs); devs = Devices.DevicesCollection.GetCanAddDevices(); //var list = devs.Select<DevicesInformation, dynamic>(o => new { Text = o.Name, Tag = o }).ToList(); //comboBox1.DataSource = list; //comboBox1.DisplayMember = "Text"; //comboBox1.ValueMember = "Tag"; List <TreeValue> tree = new List <TreeValue>(); devs.ForEach(d => { TreeValue node = tree.FirstOrDefault(n => n.Display == d.Brand); if (node == null) { tree.Add(node = new TreeValue { Display = d.Brand, Nodes = new List <TreeValue>() }); } node.Nodes.Add(new TreeValue { Display = d.Name, Value = d }); }); treeComboBox1.DisplayMember = "Display"; treeComboBox1.NodesMember = "Nodes"; this.treeComboBox1.DataSource = tree; this.treeComboBox1.SelectedIndex = 0; }
private void AddFillValue(FillValue3C fillValue, TreeValue value, Hashtable set) { string[] values = string.IsNullOrEmpty(fillValue.Value) ? new string[] { fillValue.Value } : fillValue.Value.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries); TreeValue temp = null; if (values.Length == 1 || value == null || value.Parent == null) { fillValue.SetValue(values[0]); InitFilesFullName(fillValue); set.Add(fillValue.Key, fillValue); } else { int appendIndex = 1000; for (int i = 0; i < values.Length; i++) { if (i == 0) { temp = value; } else { temp = value.Parent.FindChild(value.Name, string.Format("{0}{1}", value.Suffix, appendIndex)); } if (temp == null) { temp = new TreeValue(value.Name, string.Format("{0}{1}", value.Suffix, appendIndex)); temp.CopyFrom(value); value.Parent.AddChild(temp); } FillValue3C tempValue = new FillValue3C(); tempValue.CopyFrom(fillValue); tempValue.SetValue(values[i]); InitFilesFullName(tempValue); temp.Values.Add(tempValue.Key, tempValue); appendIndex++; } } if (value.Parent == null) { return; } // 设置新增节点默认值 int index = 1001; temp = value.Parent.FindChild(value.Name, string.Format("{0}{1}", value.Suffix, index)); while (temp != null) { foreach (DictionaryEntry entry in value.Values) { object val = temp.Values[entry.Key]; if (val == null) { temp.Values[entry.Key] = entry.Value; } } index++; temp = value.Parent.FindChild(value.Name, string.Format("{0}{1}", value.Suffix, index)); } }
private void WriteExcelRow(TreeValue value, ISheet source, ISheet dest, Hashtable valueColumns, int lastValueIndex) { foreach (DictionaryEntry entry in value.Values) { FillValue3C fillValue = entry.Value as FillValue3C; } }
private TreeValue <TypeValueInfo> GetTreeValue(TreeOpe treeOpe) { TreeValue <TypeValueInfo> treeValue = new TreeValue <TypeValueInfo> { Index = _index, Value = _typeValueInfo, Level = _level, TreeOpe = treeOpe, Selected = false, Skip = false, Stop = false }; TreeFilter treeFilter = TreeFilter.Select; if (_filter != null) { treeFilter = _filter(_typeValueInfo); } if ((treeFilter & TreeFilter.Stop) == TreeFilter.Stop) { treeValue.Stop = true; } else if ((treeFilter & TreeFilter.Skip) == TreeFilter.Skip) { treeValue.Skip = true; } else if ((treeFilter & TreeFilter.DontSelect) == 0) { treeValue.Selected = true; } return(treeValue); }
internal static void WriteTreeDir(Office.Excel.ForwardWriteWorksheet sheet, TreeValue value) { sheet.WriteNextRow(); Match match = Main_3C.nodeMatcher.Match(value.Name); if (match.Success) { sheet.WriteTextCell(1, sheet.Owner.AddSharedString(match.Groups["no"].Value)); } else { sheet.WriteTextCell(1, sheet.Owner.AddSharedString("#")); } sheet.WriteTextCell(2, sheet.Owner.AddSharedString(value.Name)); match = Main_3C.nodeMatcher.Match(value.Parent == null ? "" : value.Parent.Name); if (match.Success) { sheet.WriteTextCell(3, sheet.Owner.AddSharedString(match.Groups["no"].Value)); } else if (value.Parent != null) { sheet.WriteTextCell(3, sheet.Owner.AddSharedString("#")); } foreach (var item in value.Children) { WriteTreeDir(sheet, item); } }
public override object Convert(string fileName, string sheetName, object parameters) { ReadConverterRule(fileName, sheetName); TreeValue value = (TreeValue)parameters; EnumAndConvertTree(value); return(value); }
/// <summary> /// 从Excel文件中读取树节点的父子级关系。 /// </summary> /// <returns></returns> private TreeValue InitTreeNode() { TreeValue value = null, parent = null, root = null; Hashtable table = new Hashtable(); using (Office.Excel.ForwardExcelReader reader = new Office.Excel.ForwardExcelReader(@"..\..\..\演示数据\CCC\目录字典.xlsx")) { reader.Open(); Office.Excel.ForwardReadWorksheet sheet = reader.Activate(1) as Office.Excel.ForwardReadWorksheet; sheet.ReadFollowingRow(2); string id = null, name = null, parentId = null; object content = null; do { while (sheet.ReadNextCell(false)) { content = sheet.GetContent(); switch (sheet.CurrentCell.ColumnIndex) { case 1: id = content == null ? null : content.ToString(); break; case 2: name = content == null ? null : content.ToString(); break; case 3: parentId = content == null ? null : content.ToString(); break; } } if (id == null || name == null) { continue; } value = new TreeValue(name, parentId, null); table.Add(id, value); } while (sheet.ReadNextRow()); } foreach (DictionaryEntry entry in table) { value = entry.Value as TreeValue; if (value != null) { if (value.Parent == null) { root = value; } else { parent = table[value.Parent.Name] as TreeValue; parent.AddChild(value); } } } return(root); }
/// <summary> /// 从Excel文件中读取树节点的父子级关系。 /// </summary> /// <returns></returns> private TreeValue InitTreeNode() { TreeValue value = null, parent = null, root = null; string fileName = FileHelper.GetPublicPage(FillRuleVerson, FillType); string ruleFilePath = FileHelper.GetFillVersionByName(FillRuleVerson); Hashtable table = new Hashtable(); using (Office.Excel.ForwardExcelReader reader = new Office.Excel.ForwardExcelReader(string.Format(@"{0}\{1}", ruleFilePath, fileName))) { reader.Open(); Office.Excel.ForwardReadWorksheet sheet = reader.Activate(1) as Office.Excel.ForwardReadWorksheet; sheet.ReadFollowingRow(2); string name = null, parentName = null; object content = null; do { while (sheet.ReadNextCell(false)) { content = sheet.GetContent(); switch (sheet.CurrentCell.ColumnIndex) { case 1: name = content == null ? null : content.ToString(); break; case 2: parentName = content == null ? null : content.ToString(); break; } } if (name == null) { continue; } value = new TreeValue(name, parentName, null); table.Add(name, value); } while (sheet.ReadNextRow()); } foreach (DictionaryEntry entry in table) { value = entry.Value as TreeValue; if (value != null) { if (value.Parent == null) { root = value; } else { parent = table[value.Parent.Name] as TreeValue; parent.AddChild(value); } } } return(root); }
private void FillWorker(object state) { FillDialog_3C.BeginListen(); string windowType = null; FillDialog_3C fill = FillDialog_3C.GetFillDialog(out windowType); try { _fillParameters = this.ReadFillParameter(@"..\..\..\演示数据\CCC\CCC填报规则.xlsx"); TreeValue root = this.ReadData(DataFile); FillDialog_3C.BeginListen(); windowType = null; fill = FillDialog_3C.GetFillDialog(out windowType); if (fill != null) { if (windowType == CCCWindowType.LoginWindow) { fill.FillValue = _data["厂商关系"] as FillValue3C; fill.DoFillWork(_data["登录证书"]); } else if (windowType == CCCWindowType.FirmWindow) { FillValue3C value = _data["厂商关系"] as FillValue3C; fill.DoFillWork(value == null ? "" : value.Value); } } main = Main_3C.GetMainWindow(this.DataFile); //this.SetWindowPos(); main.FillParameters = this._fillParameters; this.GetTreeView(); main.TreeValue = root; while (main.SelectNextNode(true)) { main.FillPage(); } } catch { this.EndFill(); } }
/// <summary> /// 从树节点生成一个以其Name为键值的散列表。 /// </summary> /// <param name="root"></param> /// <returns></returns> private Hashtable GetTreeDir(TreeValue root) { Hashtable table = new Hashtable(); Stack <KeyValuePair <TreeValue, int> > stack = new Stack <KeyValuePair <TreeValue, int> >(); table.Add(root.Name, root); TreeValue current = root; for (int index = 0; index < current.Children.Count; index++) { table.Add(current.Children[index].Name, current.Children[index]); if (current.Children[index].Children.Count > 0) { stack.Push(new KeyValuePair <TreeValue, int>(current, index)); current = current.Children[index]; index = -1; continue; } else if (index >= current.Children.Count - 1) { while (stack.Count > 0) { KeyValuePair <TreeValue, int> lastPush = stack.Pop(); current = lastPush.Key; index = lastPush.Value; if (index >= current.Children.Count - 1) { continue; } else { break; } } } } return(table); }
public void GenerateDir() { if (main == null) { main = Main_3C.GetMainWindow(""); } if (main.TreeView.GetCount() == 0) { return; } TreeValue root = main.GetTreeStructure(); using (Office.Excel.ForwardExcelWriter writer = new Office.Excel.ForwardExcelWriter("目录字典.xlsx")) { writer.Open(); Office.Excel.ForwardWriteWorksheet sheet = writer.CreateWorksheet() as Office.Excel.ForwardWriteWorksheet; sheet.WriteNextRow(); sheet.WriteTextCell(1, writer.AddSharedString("Id")); sheet.WriteTextCell(2, writer.AddSharedString("目录名称")); sheet.WriteTextCell(3, writer.AddSharedString("父级目录Id")); WriteTreeDir(sheet, root); } }
private void EnumAndConvertTree(TreeValue tree) { if (tree != null) { if (tree.Values != null) { foreach (DictionaryEntry entry in tree.Values) { if (_converter.ContainsKey(entry.Key)) { InnerConvert(entry.Value as FillValue3C, _converter[entry.Key] as ConverterParameter); } } } if (tree.Children != null) { foreach (var child in tree.Children) { EnumAndConvertTree(child); } } } }
private void button1_Click(object sender, EventArgs e) { //DevicesInformation info = comboBox1.SelectedValue as DevicesInformation; TreeValue tree = this.treeComboBox1.SelectedItem as TreeValue; DevicesInformation info = tree?.Value as DevicesInformation; if (info == null) { return; } IDevices newDev = Devices.DevicesCollection.CreateDevices(null, info.ClassInfo); if (newDev.ShowConfigForm() == DialogResult.OK) { if (addedDevs == null) { addedDevs = new List <IDevices>(); } DevicesCollection.Add(newDev); newDev.CommandCompleted += DevicesCollection.commandCompleted; newDev.StateChanged += DevicesCollection.stateChanged; ListViewAddItem(newDev); } }
/// <summary> /// 从指定文件中读取需填报的参数值。 /// </summary> /// <param name="fileName"></param> /// <returns></returns> private TreeValue ReadData(string fileName) { TreeValue root = InitTreeNode(); Hashtable treeDir = GetTreeDir(root); Hashtable current = null; TreeValue lastTreeNode = root; Hashtable columnHeader = new Hashtable(); using (Office.Excel.ForwardExcelReader reader = new Office.Excel.ForwardExcelReader(fileName)) { reader.Open(); Office.Excel.ForwardReadWorksheet sheet = reader.Activate(1) as Office.Excel.ForwardReadWorksheet; if (sheet != null) { object header = null; if (sheet.ReadNextRow() && sheet.CurrentRowIndex == 1) { while (sheet.ReadNextCell(false)) { header = sheet.GetContent(); columnHeader.Add(sheet.CurrentCell.ColumnIndex, header == null ? "" : header.ToString()); } } FillValue3C fillValue = null; object content = null; string str = null; bool nextRow = false; while (sheet.ReadNextRow()) { fillValue = new FillValue3C(); while (sheet.ReadNextCell(false)) { content = sheet.GetContent(); str = content == null ? "" : content.ToString(); switch (columnHeader[sheet.CurrentCell.ColumnIndex] as string) { case "序号": fillValue.Key = str; break; case "参数项的值": fillValue.SetValue(str); break; case "参数项名称": str = str.Trim(); if (treeDir.ContainsKey(str)) { TreeValue parent = lastTreeNode; TreeValue child = null; while (parent != null) { child = parent.FindChild(str, null); if (child == null) { parent = parent.Parent; } else { break; } } if (child == null) { child = treeDir[str] as TreeValue; parent = child.Parent; } System.Diagnostics.Trace.Assert(child != null && parent != null); Match match = Main_3C.suffixMatcher.Match(fillValue.Key); if (match.Success) { string suffix = match.Groups["suffix"].Value; TreeValue temp = new TreeValue(child.Name, suffix); temp.CopyFrom(child); parent.AddChild(temp); child = temp; } current = child.Values; lastTreeNode = child; nextRow = true; // 当前行为目录行,忽略其它内容 } break; case "附件": fillValue.AttachFile = str; break; } if (nextRow) { break; } } if (string.IsNullOrEmpty(fillValue.Key) == false) { if (nextRow) { nextRow = false; continue; } if (current == null) { _data.Add(fillValue.Key, fillValue); } else { current.Add(fillValue.Key, fillValue); } } } } } return(root); }
/// <summary> /// 从指定文件中读取需填报的参数值。 /// </summary> /// <param name="fileName"></param> /// <returns></returns> private TreeValue ReadData(string fileName, Hashtable data, Hashtable fillParameters) { try { TreeValue root = InitTreeNode(); Hashtable treeDir = GetTreeDir(root); Hashtable current = null; TreeValue lastTreeNode = root; Hashtable columnHeader = new Hashtable(); using (Office.Excel.ForwardExcelReader reader = new Office.Excel.ForwardExcelReader(fileName)) { reader.Open(); Office.Excel.ForwardReadWorksheet sheet = reader.Activate(1) as Office.Excel.ForwardReadWorksheet; if (sheet != null) { object header = null; if (sheet.ReadNextRow() && sheet.CurrentRowIndex == 1) { while (sheet.ReadNextCell(false)) { header = sheet.GetContent(); columnHeader.Add(sheet.CurrentCell.ColumnIndex, header == null ? "" : header.ToString()); } } FillValue3C fillValue = null; object content = null; string str = null; bool nextRow = false; while (sheet.ReadNextRow()) { fillValue = new FillValue3C(); while (sheet.ReadNextCell(false)) { content = sheet.GetContent(); str = content == null ? "" : content.ToString(); switch (columnHeader[sheet.CurrentCell.ColumnIndex] as string) { case "序号": fillValue.Key = str; break; case "参数项的值": fillValue.SetValue(string.Format("{0}{1}", string.IsNullOrEmpty(fillValue.Value) ? "" : string.Format("{0}\t", fillValue.Value), str)); break; case "参数项名称": Match match = paraNameMatcher.Match(str); if (match.Success && match.Groups["name"].Success) { str = match.Groups["name"].Value.Trim(); } else { str = str.Trim(); } if (treeDir.ContainsKey(str)) { TreeValue parent = lastTreeNode; TreeValue child = null; while (parent != null) { child = parent.FindChild(str, null); if (child == null) { parent = parent.Parent; } else { break; } } if (child == null) { child = treeDir[str] as TreeValue; parent = child.Parent; } System.Diagnostics.Trace.Assert(child != null && parent != null); match = suffixMatcher.Match(fillValue.Key); if (match.Success) { string suffix = match.Groups["suffix"].Value; TreeValue temp = new TreeValue(child.Name, suffix); temp.CopyFrom(child); parent.AddChild(temp); child = temp; } current = child.Values; lastTreeNode = child; nextRow = true; // 当前行为目录行,忽略其它内容 } break; case "附件": fillValue.PublicAttachFile = str; break; } if (nextRow) { break; } } if (string.IsNullOrEmpty(fillValue.Key) == false) { if (nextRow) { nextRow = false; continue; } AddFillValue(fillValue, lastTreeNode, current == null ? data : current); //if (current == null) // 若当前值为树节点下的值则将其添加到当前树节点的Values中, // _data.Add(fillValue.Key, fillValue); // 否则(如证书名称、厂商关系)添加到管理器的数据中。 //else // current.Add(fillValue.Key, fillValue); } } } } return(root); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.StackTrace + ex.Message); throw; } }
public void DecomposeTree(AbstractTree parentNode, AbstractTree node, TreeBranch branch, TreePath path) { if (!path.IsAdded) { Possibilities.Add(path); path.IsAdded = true; } // Recursive browse if (node is TreeConnector) { TreeConnector treeConnector = (TreeConnector)node; if (treeConnector.Connection == "&") { DecomposeTree(treeConnector, treeConnector.LeftTree, TreeBranch.Left, path); DecomposeTree(treeConnector, treeConnector.RightTree, TreeBranch.Right, path); } else if (treeConnector.Connection == "|") { // In this case, parentNode is a TreeOperator if (parentNode != null) { // Left distribution TreePath clonedPathLeftDistribution = (TreePath)path.Clone(); TreeConnector parentTreeConnectorLeftDistribution = (TreeConnector)parentNode.Clone(); // Right distribution TreePath clonedPathRightDistribution = (TreePath)path.Clone(); TreeConnector parentTreeConnectorRightDistribution = (TreeConnector)parentNode.Clone(); if (branch == TreeBranch.Left) { parentTreeConnectorLeftDistribution.LeftTree = treeConnector.LeftTree; parentTreeConnectorRightDistribution.LeftTree = treeConnector.RightTree; } else if (branch == TreeBranch.Right) { parentTreeConnectorLeftDistribution.RightTree = treeConnector.LeftTree; parentTreeConnectorRightDistribution.RightTree = treeConnector.RightTree; } // Remove obsolete path Possibilities.Remove(path); // Browse recursively distributed tree ; the path must be different (by ref) if the parent operator is 'OR' DecomposeTree( parentTreeConnectorLeftDistribution, parentTreeConnectorLeftDistribution.LeftTree, TreeBranch.Left, parentTreeConnectorLeftDistribution.Connection == "|" ? (TreePath)clonedPathLeftDistribution.Clone() : clonedPathLeftDistribution ); DecomposeTree( parentTreeConnectorLeftDistribution, parentTreeConnectorLeftDistribution.RightTree, TreeBranch.Right, clonedPathLeftDistribution ); DecomposeTree( parentTreeConnectorRightDistribution, parentTreeConnectorRightDistribution.LeftTree, TreeBranch.Left, parentTreeConnectorLeftDistribution.Connection == "|" ? (TreePath)clonedPathRightDistribution.Clone() : clonedPathRightDistribution ); DecomposeTree( parentTreeConnectorRightDistribution, parentTreeConnectorRightDistribution.RightTree, TreeBranch.Right, clonedPathRightDistribution ); } // The operator is the root of the tree; we simply divide the path else { TreePath clonedLeftPath = (TreePath)path.Clone(); TreePath clonedRightPath = (TreePath)path.Clone(); // Remove obsolete path Possibilities.Remove(path); DecomposeTree(treeConnector, treeConnector.LeftTree, TreeBranch.Left, clonedLeftPath); DecomposeTree(treeConnector, treeConnector.RightTree, TreeBranch.Right, clonedRightPath); } } break; } // Leaf else if (node is TreeValue) { TreeValue treeValue = (TreeValue)node; path.Add(treeValue); } }
/// <summary> /// 数据验证 /// </summary> /// <param name="value"></param> /// <param name="validator"></param> private bool Validate(string fileName, SHFYDataValidator validator, Hashtable specialParameters, int needAddedColumn, int lastValueColumnIndex) { bool result = true; TreeValue root = InitTreeNode(); Hashtable treeDir = GetTreeDir(root); Hashtable columnHeader = new Hashtable(); Hashtable startIndex = new Hashtable(); string destFile = string.Format("{0}\\{1}_{2}.xlsx", Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName), DateTime.Now.ToString("MMddHHmmss")); File.Copy(fileName, destFile); XSSFWorkbook destWorkbook = null; using (FileStream destStream = new FileStream(destFile, FileMode.Open, FileAccess.Read)) { destWorkbook = new XSSFWorkbook(destStream); } ISheet destSheet = destWorkbook.GetSheetAt(0); InsertColumn(lastValueColumnIndex, needAddedColumn, destSheet); IEnumerator rowEnumerator = destSheet.GetRowEnumerator(); // 验证失败单元格格式 ICellStyle abnormalStyle = CreateAbnormalStyle(destWorkbook); // 验证失败单元格同节点格式 ICellStyle normalStyle = CreateNormalStyle(destWorkbook); if (rowEnumerator.MoveNext()) { IRow destRow = destSheet.GetRow(0); for (int i = 0; i < needAddedColumn; i++) { ICell cell = destRow.GetCell(lastValueColumnIndex + i + 1); cell.SetCellValue(GetCellValue(destRow.GetCell(lastValueColumnIndex))); CopyCell(destRow.GetCell(lastValueColumnIndex), cell, destWorkbook); } for (int columnIndex = destRow.FirstCellNum; columnIndex < destRow.LastCellNum - 1 && columnIndex <= lastValueColumnIndex + needAddedColumn; columnIndex++) { ICell cell = destRow.GetCell(columnIndex); columnHeader.Add(cell.ColumnIndex, cell == null ? "" : GetCellValue(cell)); } } int lastDirIndex = -1, appendColumn = lastValueColumnIndex, currentBufferIndex = 0; string key = "", value = ""; string[] buffer = null; List <int> columnIndexes = new List <int>(); while (rowEnumerator.MoveNext()) { IRow destRow = rowEnumerator.Current as IRow; IEnumerator cellEnumerator = destRow.GetEnumerator(); for (int columnIndex = destRow.FirstCellNum; columnIndex < destRow.LastCellNum - 1 && columnIndex <= lastValueColumnIndex + needAddedColumn; columnIndex++) { ICell destCell = destRow.GetCell(columnIndex); if (destCell == null) { continue; } switch (columnHeader[columnIndex] as string) { case "序号": key = GetCellValue(destCell); break; case "参数项的值": value = GetCellValue(destCell); int index = 0; bool flag = false; bool isTitle = false; if (key != null && specialParameters.ContainsKey(key)) { if (value.IndexOf(',') >= 0) { buffer = value.Split(','); } else if (value.IndexOf(',') >= 0) { buffer = value.Split(','); } else if (value.IndexOf(';') >= 0) { buffer = value.Split(';'); } //if (buffer == null) // buffer = value.Split(','); if (buffer != null && currentBufferIndex < buffer.Length) { columnIndexes.Add(destCell.ColumnIndex); destCell.SetCellValue(buffer[currentBufferIndex]); currentBufferIndex++; } } flag = validator.IsValid(key, GetCellValue(destCell)); if (flag == false || validator.IsSpecial(key, GetCellValue(destCell))) { if (startIndex.Contains(destCell.ColumnIndex)) { index = (int)startIndex[destCell.ColumnIndex]; isTitle = false; } else { index = lastDirIndex; isTitle = true; } SetAbnormalCell(index, destCell.RowIndex, destCell.ColumnIndex, destSheet, abnormalStyle, normalStyle, isTitle); startIndex[destCell.ColumnIndex] = destCell.RowIndex; } result = result && flag; break; case "参数项名称": buffer = null; string str = GetCellValue(destCell); Match match = Default3CDataProvider.paraNameMatcher.Match(str); if (match.Success && match.Groups["name"].Success) { str = match.Groups["name"].Value.Trim(); } else { str = str.Trim(); } if (treeDir.ContainsKey(str)) { if (columnIndexes.Count > 1) { CopyCell(lastDirIndex, destCell.RowIndex, columnIndexes, destSheet); } columnIndexes.Clear(); lastDirIndex = destCell.RowIndex; foreach (DictionaryEntry entry in startIndex) { SetAbnormalCell((int)entry.Value, lastDirIndex - 1, (int)entry.Key, destSheet, normalStyle, normalStyle, false); } startIndex.Clear(); } currentBufferIndex = 0; break; } } } File.Delete(destFile); destFile = string.Format("{0}\\{3}_{1}_{2}.xlsx", Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName), DateTime.Now.ToString("MMddHHmmss"), result ? "已验证" : "验证失败"); using (FileStream fileStream = new FileStream(destFile, FileMode.OpenOrCreate, FileAccess.Write)) { destWorkbook.Write(fileStream); } return(result); }
private TreeValue<TypeValueInfo> GetTreeValue(TreeOpe treeOpe) { TreeValue<TypeValueInfo> treeValue = new TreeValue<TypeValueInfo> { Index = _index, Value = _typeValueInfo, Level = _level, TreeOpe = treeOpe, Selected = false, Skip = false, Stop = false }; TreeFilter treeFilter = TreeFilter.Select; if (_filter != null) treeFilter = _filter(_typeValueInfo); if ((treeFilter & TreeFilter.Stop) == TreeFilter.Stop) { treeValue.Stop = true; } else if ((treeFilter & TreeFilter.Skip) == TreeFilter.Skip) { treeValue.Skip = true; } else if ((treeFilter & TreeFilter.DontSelect) == 0) { treeValue.Selected = true; } return treeValue; }