private static void ParseColumnMajorTable(TableInfo tableInfo, DataTable sheet) { int descIndex = tableInfo.startRow + 1; int typeIndex = tableInfo.startRow + 2; int nameIndex = tableInfo.startRow + 3; tableInfo.numRows = tableInfo.endRow - tableInfo.startRow - 4; tableInfo.numFields = 0; if (tableInfo.numRows < 0) { tableInfo.numRows = 0; return; } for (int columnIndex = 0; columnIndex < sheet.Columns.Count; ++columnIndex) { var type = sheet.Rows[typeIndex][columnIndex].ToString(); string name; string tag; NameFormater.GetNameAndTag(out name, out tag, sheet.Rows[nameIndex][columnIndex].ToString()); name = NameFormater.FormatCamelName(name, true); if (name == "" || type == "") { break; } FieldInfo field = new FieldInfo(); field.comment = sheet.Rows[descIndex][columnIndex].ToString(); field.name = name; field.type = type; field.tag = tag; for (int i = tableInfo.startRow + 4; i < tableInfo.endRow; ++i) { field.datas.Add(ConvertData(field.type, sheet.Rows[i][columnIndex].ToString())); } tableInfo.fieldInfos.Add(field); } tableInfo.numFields = tableInfo.fieldInfos.Count; }
private static void ParseRowMajorTable(TableInfo tableInfo, DataTable sheet) { for (int i = tableInfo.startRow + 1; i < tableInfo.endRow; ++i) { FieldInfo field = new FieldInfo(); field.comment = sheet.Rows[i][0].ToString(); field.type = sheet.Rows[i][1].ToString(); string name; string tag; NameFormater.GetNameAndTag(out name, out tag, sheet.Rows[i][2].ToString()); field.name = NameFormater.FormatCamelName(name, true); field.tag = tag; field.datas.Add(ConvertData(field.type, sheet.Rows[i][3].ToString())); tableInfo.fieldInfos.Add(field); } tableInfo.numRows = 1; tableInfo.numFields = tableInfo.fieldInfos.Count; }