/// <summary> /// 检测工作表节点的有效性,此类节点中包含了两个子节点,一个是此工作表所在的工作簿的路径,一个是此工作表的名称; /// 如果检测通过,则返回此Worksheet对象,否则返回Nothing /// </summary> /// <param name="WorksheetNode"></param> /// <param name="FileContents">用来放置项目文件中记录的工作簿或者工作表对象的变量</param> /// <param name="blnNodeForWorksheetValidated"></param> /// <returns>要返回的工作表对象,如果验证不通过,则返回Nothing</returns> /// <remarks></remarks> private Worksheet ValidateNodeForWorksheet(XmlElement WorksheetNode, clsData_FileContents FileContents, ref bool blnNodeForWorksheetValidated) { //要返回的工作表对象,如果验证不通过,则返回Nothing Worksheet ValidSheet = null; // blnNodeForWorksheetValidated = false; //节点中记录的工作簿路径 string strWkbkPath = ""; XmlNode ndWkbkPath = WorksheetNode.SelectSingleNode(DataBasePath.Nd3_FilePath); if (ndWkbkPath == null) //说明此节点中没有记录工作表所在的工作簿信息,也就是说,此节点中没有记录值 { return(ValidSheet); } else { strWkbkPath = ndWkbkPath.InnerText; } //节点中记录的工作表名称 string strSheetName = ""; XmlNode ndShetName = WorksheetNode[DataBasePath.Nd3_SheetName]; if (ndShetName == null) { return(ValidSheet); } else { strSheetName = ndShetName.InnerText; } //---先检测工作表所在的工作簿是否在有效的并成功打开和返回的工作簿列表中 Workbook ValidWkbk = null; foreach (Workbook Wkbk in FileContents.lstWkbks) { if (string.Compare(strWkbkPath, Wkbk.FullName, true) == 0) { ValidWkbk = Wkbk; break; } } //---- 根据工作簿的有效性与否执行相应的操作 if (ValidWkbk != null) //说明工作簿有效 { //开始检测工作表的有效性 ValidSheet = ExcelFunction.MatchWorksheet(ValidWkbk, strSheetName); if (ValidSheet != null) { blnNodeForWorksheetValidated = true; // } else //此工作簿不存在,或者是没有成功赋值 { this.F_blnFileValid = false; this.F_lstErrorMessage.Add("The Specified Worksheet" + strSheetName + "is not found in workbook: " + strWkbkPath); } } else //说明节点中记录的工作簿无效 { this.F_blnFileValid = false; this.F_lstErrorMessage.Add("The Specified Workbook for worksheet " + strSheetName + " is not found : " + strWkbkPath); } //返回检测结果 return(ValidSheet); }