private void readModelXmlFile(string content, ExcelStateObj table) { List <string> ColIdList = new List <string>(); ColIdList.Clear(); colDict.Clear(); ColIdList.Add("None"); TextReader tr = new StringReader(content); XmlReader reader = new XmlTextReader(tr); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (!string.IsNullOrEmpty(reader.LocalName)) { for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); string attrName = reader.Name; if (!string.IsNullOrEmpty(attrName) && !ColIdList.Contains(attrName)) { ColIdList.Add(attrName); colDict[attrName] = 0; } } ; } } } table.ColunmModel = ColIdList.ToArray(); //Debug.Log(table.ColunmModel); }
private void readModelJsonFile(string content, ExcelStateObj table) { List <string> ColIdList = new List <string>(); ColIdList.Clear(); colDict.Clear(); ColIdList.Add("None"); JsonData jd = JsonMapper.ToObject(content); if (jd.Count == 0) { return; } List <string> list = new List <string>(jd[0].Keys); foreach (var attrName in list) { if (!string.IsNullOrEmpty(attrName) && !ColIdList.Contains(attrName)) { ColIdList.Add(attrName); colDict[attrName] = 0; } } table.ColunmModel = ColIdList.ToArray(); }
private void readModel(string url, ExcelStateObj table) { if (string.IsNullOrEmpty(url)) { return; } table.ModelName = System.IO.Path.GetFileNameWithoutExtension(url); FileInfo fi = new FileInfo(url); string content = ExcelFunction.LoadFileStr(url); switch (fi.Extension) { case ".xml": case ".XML": case ".Xml": readModelXmlFile(content, table); break; case ".json": case ".JSON": case ".Json": readModelJsonFile(content, table); break; } }
public static List <ExcelStateObj> ReadExcel(string path) { MemoryStream memory = new MemoryStream(LoadFilebytes(path)); List <ExcelStateObj> list = new List <ExcelStateObj>(); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(memory); do { // sheet name //Debug.Log(excelReader.Name); List <RowStateObj> rowList = new List <RowStateObj>(); int rowCount = 0; int colCount = 0; while (excelReader.Read()) { bool isAdd = false; RowStateObj row = new RowStateObj(excelReader.FieldCount); colCount = Mathf.Max(excelReader.FieldCount, colCount); for (int i = 0; i < colCount; i++) { CellStateObj cell = new CellStateObj(); row.Cells[i] = cell; if (i < excelReader.FieldCount) { string value = excelReader.IsDBNull(i) ? "" : excelReader.GetString(i); cell.Value = value; if (!string.IsNullOrEmpty(value)) { isAdd = true; } } } if (isAdd) { rowCount++; rowList.Add(row); } } ExcelStateObj excelStateObj = new ExcelStateObj(rowCount, colCount); excelStateObj.ExcelName = excelReader.Name; excelStateObj.Rows = rowList.ToArray(); list.Add(excelStateObj); }while(excelReader.NextResult()); //DataSet result = excelReader.AsDataSet(); excelReader.Close(); excelReader.Dispose(); memory.Close(); memory.Dispose(); return(list); }
private void DrawSelect() { float wid = position.width; //EditorGUIUtility.currentViewWidth; EditorGUILayout.BeginHorizontal(); GUILayout.Label("SelectTable:", GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / 3)); GUILayout.Label(tables[currentTable], GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / 3)); int _tableIndex = currentTable; _tableIndex = EditorGUILayout.Popup(currentTable, tables, GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / 3)); if (selectTable == null || _tableIndex != currentTable) { selectTable = excelDict[tables[_tableIndex]]; } currentTable = _tableIndex; EditorGUILayout.EndHorizontal(); }
private void DrawTable() { ExcelStateObj table = selectTable; if (table == null) { return; } if (table.modelDict == null) { table.modelDict = new Dictionary <int, int>(); } if (table.ColunmModel == null) { return; } float wid = position.width; int StartRow = table.StartRow; EditorGUILayout.BeginHorizontal(); GUILayout.Label("Start Row:", GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / 4)); StartRow = EditorGUILayout.IntField(table.StartRow, GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / 4)); int StartCol = table.StartCol; GUILayout.Label("Start Colunm:", GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / 4)); StartCol = EditorGUILayout.IntField(table.StartCol, GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / 4)); if (StartRow != table.StartRow) { table.StartRow = StartRow; } if (StartCol != table.StartCol) { table.StartCol = StartCol; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("", GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / (table.ColCount + 1 - table.StartCol))); RowStateObj row = table.Rows[0]; for (int j = table.StartCol; j < table.ColCount; j++) { CellStateObj cell = row.Cells[j]; EditorGUILayout.LabelField(cell.Value, GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / (table.ColCount + 1 - table.StartCol))); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("", GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / (table.ColCount + 1 - table.StartCol))); for (int j = table.StartCol; j < table.ColCount; j++) { if (!table.modelDict.ContainsKey(j)) { table.modelDict[j] = 0; } int isShow = table.modelDict[j]; isShow = EditorGUILayout.Popup(isShow, table.ColunmModel, GUILayout.MinWidth(0), GUILayout.MaxWidth(wid / (table.ColCount + 1 - table.StartCol))); if (isShow != table.modelDict[j]) { if (isShow != 0) { table.SetExportColunmExport(j, true); table.SetExportColunmName(j, table.ColunmModel[isShow]); } else { table.SetExportColunmExport(j, false); } } table.modelDict[j] = isShow; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos); for (int i = table.StartRow; i < table.RowCount; i++) { RowStateObj _row = table.Rows[i]; DrawRow(_row); } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); }