public static void CreateLangXml(ExcelSheet sheet) { if (ExcelExportOutSetting.IsCreateNew) { ExcelUtil.ResetDirectory(ExcelExportOutSetting.OutLanguageDir); } else { ExcelUtil.CheckCreateDirectory(ExcelExportOutSetting.OutLanguageDir); } for (int i = 1; i < sheet.Fields.Count; i++) { ExcelSheetTableField excelSheetTableField = sheet.Fields[i]; CreatXml(excelSheetTableField.Name, sheet); } }
private static void addSheetTableRow(ExcelSheet sheet, DataTable dtSource) { bool isVert = sheet.IsVert; if (isVert) { DataRow expRow = sheet.Table.NewRow(); for (int c = 0; c < sheet.Fields.Count; c++) { ExcelSheetTableField field = sheet.Fields[c]; bool flag = field.Export == string.Empty; if (!flag) { object val = ExcelUtil.GetObjectValue(field.Type, field.Value, 1); bool flag2 = val == null; if (flag2) { Debug.LogWarning(sheet.FullName + "表," + field.Name + "字段" + field.Type + "类型未写转换规则,已转换为string类型"); val = string.Empty; } expRow[c] = val; } } sheet.Table.Rows.Add(expRow); } else { for (int i = 4; i < dtSource.Rows.Count; i++) { DataRow expRow2 = sheet.Table.NewRow(); bool flag3 = string.IsNullOrEmpty(dtSource.Rows[i][0].ToString()); if (!flag3) { int cellIndex = 0; for (int f = 0; f < sheet.Fields.Count; f++) { ExcelSheetTableField field2 = sheet.Fields[f]; bool flag4 = field2.Export == string.Empty; if (flag4) { cellIndex++; } else { string cellVal = dtSource.Rows[i][cellIndex].ToString(); cellIndex++; object val2 = ExcelUtil.GetObjectValue(field2.Type, cellVal, field2.FieldCount); bool flag5 = val2 == null; if (flag5) { Debug.LogWarning(sheet.FullName + "表," + field2.Name + "字段" + field2.Type + "类型未写转换规则,已转换为string类型"); val2 = string.Empty; } bool flag6 = field2.FieldCount > 1; if (flag6) { for (int j = 1; j < field2.FieldCount; j++) { ExcelUtil.AddListValue(field2.Type, dtSource.Rows[i][cellIndex].ToString(), ref val2); cellIndex++; } } expRow2[f] = val2; } } sheet.Table.Rows.Add(expRow2); } } } }
private static bool setSheetTable(ExcelSheet sheet, DataTable dtSource) { bool flag = dtSource.Columns.Count > 100; bool result; if (flag) { Debug.LogError(sheet.FullName + "表列数太多,请检查表格式"); result = false; } else { bool isVert = sheet.IsVert; if (isVert) { bool flag2 = dtSource.Rows.Count < 1 && dtSource.Columns.Count < 5; if (flag2) { Debug.LogError(sheet.FullName + "表列数不对"); result = false; } else { int emptyRow = 0; for (int i = 1; i < dtSource.Rows.Count; i++) { bool flag3 = dtSource.Rows[i][0].ToString() == string.Empty; if (flag3) { emptyRow++; bool flag4 = emptyRow > 3; if (flag4) { break; } } else { emptyRow = 0; ExcelSheetTableField field = new ExcelSheetTableField(); field.Name = dtSource.Rows[i][0].ToString(); field.Export = dtSource.Rows[i][1].ToString(); field.Type = dtSource.Rows[i][2].ToString().ToLower(); field.Value = dtSource.Rows[i][3].ToString(); field.Des = dtSource.Rows[i][4].ToString(); field.IsInterface = (field.Export.IndexOf('I') != -1); sheet.Table.Columns.Add(field.Name, ExcelUtil.GetStringType(field.Type)); sheet.Fields.Add(field); } } sheet.Export = dtSource.Rows[1][1].ToString().ToUpper(); sheet.IsEncrypt = (sheet.Export.IndexOf('@') != -1); result = true; } } else { bool flag5 = dtSource.Rows.Count < 4 && dtSource.Columns.Count < 2; if (flag5) { Debug.LogError(sheet.FullName + "表列数不对"); result = false; } else { ExcelSheetTableField field2 = null; for (int j = 0; j < dtSource.Columns.Count; j++) { string[] arrInfo = dtSource.Rows[3][j].ToString().Split(new char[] { '#' }); string fieldName = arrInfo[0]; bool flag6 = fieldName == string.Empty; if (flag6) { break; } bool flag7 = field2 == null || field2.Name != fieldName; if (flag7) { field2 = new ExcelSheetTableField(); field2.Des = dtSource.Rows[0][j].ToString(); field2.Export = dtSource.Rows[1][j].ToString(); field2.Type = dtSource.Rows[2][j].ToString().ToLower(); field2.Name = fieldName; field2.IsInterface = (field2.Export.IndexOf('I') != -1); field2.FieldCount = 1; sheet.Fields.Add(field2); sheet.Table.Columns.Add(field2.Name, ExcelUtil.GetStringType(field2.Type)); } else { ExcelSheetTableField excelSheetTableField = field2; excelSheetTableField.Des = excelSheetTableField.Des + "\n" + dtSource.Rows[0][j].ToString(); field2.FieldCount++; } } sheet.Export = dtSource.Rows[1][0].ToString().ToUpper(); sheet.IsEncrypt = (sheet.Export.IndexOf('@') != -1); result = true; } } } return(result); }