string ExcelDataToXml(string spces, string keyname, string cellgs, ExcelRow model, FileExcelDatas exceldatas, Dictionary <string, ExcelDatas> datas, bool is_Not_Null, bool isJava) { StringBuilder xmlBuilder = new StringBuilder(); bool isChild = model.Cells.Where(l => !string.IsNullOrWhiteSpace(l.CellFileName) && !string.IsNullOrWhiteSpace(l.CellValue) && (!l.CellValue.Equals("0"))).Count() > 0; if (isChild) { xmlBuilder.AppendLine(spces + "<" + keyname + model.ToXmlString(cellgs, is_Not_Null) + ">"); foreach (var cell in model.Cells) { string dataKey = cell.CellFileName; if (cell.Cellgs.Equals("ALL") || cell.Cellgs.Equals(cellgs)) { if (!string.IsNullOrWhiteSpace(dataKey) && datas.ContainsKey(dataKey)) { string[] keys = cell.CellValue.Split(','); string sname = datas[cell.CellFileName].SheetName; if (isJava) { xmlBuilder.AppendLine(spces + " <" + sname + "s>"); } foreach (var keyID in keys) { if (!keyID.Equals("0")) { ExcelRow _cellModel = null; if (!datas[cell.CellFileName].Rows.ContainsKey(keyID)) { if (exceldatas.FileName_And_SheetName.ContainsKey(cell.CellFileName)) { foreach (var item in exceldatas.FileName_And_SheetName[cell.CellFileName]) { if (exceldatas.Datas[item].Rows.ContainsKey(keyID)) { _cellModel = exceldatas.Datas[item].Rows[keyID]; break; } } } } else { _cellModel = datas[cell.CellFileName].Rows[keyID]; } if (_cellModel != null) { if (isJava) { xmlBuilder.AppendLine(ExcelDataToXml(spces + " ", sname, cellgs, _cellModel, exceldatas, datas, is_Not_Null, isJava)); } else { xmlBuilder.AppendLine(ExcelDataToXml(spces + " ", sname, cellgs, _cellModel, exceldatas, datas, is_Not_Null, isJava)); } } } } if (isJava) { xmlBuilder.AppendLine(spces + " </" + sname + "s>"); } } } } xmlBuilder.Append(spces + "</" + keyname + ">"); } else { string tmp = model.ToXmlString(cellgs, is_Not_Null); //if (!string.IsNullOrWhiteSpace(tmp)) { xmlBuilder.Append(spces + "<" + keyname + tmp + " />"); } } return(xmlBuilder.ToString()); }